问题:
我的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中。
答案 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)
}