R - creating data frames inside a for loop

时间:2016-04-15 15:13:53

标签: r for-loop dataframe

I have hardcoded this:

s79t5 <- read.csv("filename1.csv", header = TRUE)
s81t2 <- read.csv("filename2.csv", header = TRUE)
etc.

subsets79t5 <- subset(s79t5, Tags!='')
subsets81t2 <- subset(s81t2, Tags!='')
...
subsets100t5 <- subset(s100t5, Tags!='')

now i need to softcode it. i am almost there:

sessions <- c('s79t5', 's81t2', 's88t2', 's90t3', 's96t3', 's98t4', 's100t5')

for (i in 1:length(sessions)) {
    jFileName <- c(as.character(sessions[i]))
    j <- data.frame(jFileName)
    subset <- subset(j, j$Tags!='')
    assign(paste("subset", jFileName, sep = ""), data.frame(subset))
}

1 个答案:

答案 0 :(得分:0)

这里只是回答一个问题来解决这个问题。讨论在评论中。

您的行中需要get功能:j <- data.frame(jFileName)

应该是:j <- as.data.frame(get(jFileName))

get函数在现有对象中查找您给它的字符串字符(在本例中为jFileName)并返回该对象。然后我确保它是一个as.data.frame的数据框。

以前你实际上是在告诉R用字符串创建一个数据框。使用get,您现在正在引用您的实际数据集。