循环遍历R中的数据框变量

时间:2017-09-26 10:56:56

标签: arrays r string loops dataframe

我有一些数据帧,只有少数变量彼此不同。大多数情况下都是一样的。 我想在循环中准备变量,所以我不必分别为所有数据帧指定每个变量。然而,我遇到了一些问题。

clist <- c("data", "data_error", "data_RT")

我首先列出了数据框的名称

for (i in clist) {
i$ID <- as.factor(i$ID)
i$TMS <- as.factor(i$TMS)
i$bias<- as.numeric(i$bias)
 ... }

我尝试遍历我想要准备的所有变量。但这是不可能的,我收到一条错误消息:

Error in i$ID : $ operator is invalid for atomic vectors

我尝试谷歌寻求帮助,但我不明白它的解释:(你能帮我理解我做错了什么以及如何解决它?

1 个答案:

答案 0 :(得分:2)

您可以使用数据框列表而不是名称向量:

clist <- list(data, data_error, data_RT)

然后遍历列表:

for (i in 1:length(clist)) {
clist[[i]]$ID <- as.factor(clist[[i]]$ID)
clist[[i]]$TMS <- as.factor(clist[[i]]$TMS)
clist[[i]]$bias<- as.numeric(clist[[i]]$bias)
 ... }

之后,您可以使用

list2env(clist,globalenv())

将数据帧放回到您的全局环境中。不过,我建议你把它们放在列表中。