私は、1つの列が修正されなければならないデータフレームを持っており、NAs、文字および数字を正しく処理します。データフレームは類似の名前を持ち、関心のある列は共有されます。 forループを作成して、関心のある列のすべての行を正しく変更しました。しかし、私はそれを達成するために中間オブジェクト "df"を作成しなければなりませんでした。 これは必要ですか?元のデータフレームを直接変更することができます。類似のデータフレームをループして変更を適用する
sheet1 <- read.table(text="
data
15448
something_else
15334
14477", header=TRUE, stringsAsFactors=FALSE)
sheet2 <- read.table(text="
data
16448
NA
16477", header=TRUE, stringsAsFactors=FALSE)
sheets<-ls()[grep("sheet",ls())]
for(i in 1:length(sheets)) {
df<-NULL
df<-eval(parse(text = paste0("sheet",i)))
for (y in 1:length(df$data)){
if(!is.na(as.integer(df$data[y])))
{
df[["data"]][y]<-as.character(as.Date(as.integer(df$data[y]), origin = "1899-12-30"))
}
}
assign(eval(as.character(paste0("sheet",i))),df)
}
NAsと文字に問題がありました。私はすべてのキャラクター情報も保持したい。多分あなたは私を見せることができます。 – Ferroao
'sheets = mget(ls(pattern =" sheet [0-9] "))' –