我的R环境中有多个数据框 例如。数据1,数据2,数据3。 第一列是具有标题的日期列 “X”(所有数据框中的标题相同)但其类显示为字符。 所以我想在我环境中所有数据帧的第一列使用as.Date()函数。
func OrientationDidChange(notification: NSNotification) {
var Orientation = UIDevice.currentDevice().orientation
if Orientation == .LandscapeLeft || Orientation == .LandscapeRight {
}
else if Orientation == .Portrait {
}
}
以上行适用于一个数据帧。但我想使用for循环 对于所有数据帧。我有一个所有数据框的名称列表。
data1$X <- as.Date(data1$X)
我尝试过以下
list <- c("data1", "data2", "data3")
哪个不起作用。
任何帮助将不胜感激。
答案 0 :(得分:1)
最好在此使用lapply
以避免for
副作用:
lapply(c("data1","data2","data3"), function(dx){
dx <- transform(dx,as.Date(x))
})
答案 1 :(得分:1)
尝试
date.columns <- c('date1','date2','date3') # all date columns
df[date.columns] <- lapply(df[date.columns], as.Date)
答案 2 :(得分:0)
要使for
循环正确评估数据框名称(i
)和变量名称(x
),您需要使用[""]
表示法。请尝试以下方法:
for (i in list) {
i["x"] <- as.Date(i["x"])
}
如果这不起作用,请使用dput()
发布您的数据示例(请参阅How to make a great R reproducible example?)
答案 3 :(得分:0)
这是一个古老的问题,但是没人给OP一个令人满意的答案。 这是一个类似的问题
How to use a string to refer to a data frame in R?
使用get
和assign
for (i in list) {
df <- get(i)
df$X <- as.Date(df$X)
assign(as.character(i), df, envir= .GlobalEnv)
}
您正在使用副本