r for循环不迭代到每个项目

时间:2017-04-18 20:56:51

标签: r for-loop

问题:

我的for循环似乎没有循环遍历我的数据帧。我认为这是因为它只是在打到我的调试打印行时打印出所有内容。 FOR中的代码可以单独使用

目标

我想在相当大的数据集中对所有组运行关联。这段代码应该遍历一个唯一的路径列表(var3)并在每条路径上运行相关性。

数据框设置:

df.1 
id var1 var2 var3
1  23   2.1  "this"
2  32   2.2  "is"
3  13   2.3  "is"

CODE

# reduce size
directory.df$var1<-format(round(directory.df$var1/1000,1),nsmall=1)
directory.df$var2<- format(round(directory.df$var2/1000,1),nsmall=1)

df.1 <- unique(directory.df$var3)
df.1 <- data.table(unique.directories)

for (current.dir in df.1)
{
 print (current.dir) 
 directory.group <- subset(directory.df, var3 == current.dir)
 directory.group$var1<- as.numeric(directory.group$var1)
 directory.group$var2<- as.numeric(directory.group$var2)

 ## correlation ##
 cor(directory.group$var1, directory.group$var2)
}

当我运行代码时,print(current.dir)将打印出整个列表。似乎for的第一行(df.1中的current.dir)获取var3的所有值并将其放在current.dir中。

1 个答案:

答案 0 :(得分:0)

我只需删除此行 df.1&lt; - data.table(unique.directories),它就可以了。

#  reduce size
directory.df$var1<-format(round(directory.df$var1/1000,1),nsmall=1)
directory.df$var2<- format(round(directory.df$var2/1000,1),nsmall=1)

df.1 <- unique(directory.df$var3)

for (current.dir in df.1)
{
 print (current.dir) 
 directory.group <- subset(directory.df, var3 == current.dir)
 directory.group$var1<- as.numeric(directory.group$var1)
 directory.group$var2<- as.numeric(directory.group$var2)

 ## correlation ##
 cor(directory.group$var1, directory.group$var2)
}