【发布时间】:2014-04-01 20:52:20
【问题描述】:
我正在尝试遍历多个对象,以对每个对象中包含的数据帧执行一些子集化。此外,在每个数据帧中,我都会在几年内进行子集化。我正在使用带有数据帧名称的字符向量将数据传递到循环中,然后使用 assign() 将其传递回字符名称。问题是循环在分配时不会向数据框返回任何行。代码如下:
dfs <- c('df.one', 'df.two', 'df.three', etc.)
year <- NULL;
for (i in 1:length(dfs)) {
data <- get(dfs[i]);
for (j in unique(data$year)) {
yr <- data[data$year==unique(data$year)[j],]
yr <- subset(yr, snowmelt.date <= sampling.date)
year <- rbind(year, yr)
}
assign(dfs[i], year)
}
对于其他方法的任何想法或想法将不胜感激!感谢您的帮助。
比例
附:请让我知道一个实际的可重现示例是否对此有所帮助。我只是认为有人可以通过查看代码来挑选出一些东西。
【问题讨论】:
-
有更好的方法可以做到这一点,但作为开始,按年分组,试试这个
yr <- data[data$year == j,]j 的值为unique(data$year)并且不是索引。 -
谢谢,infominer。你介意让我介绍一些更好的方法吗?
-
一个可重现的例子会有所帮助,也许你的一个数据框
dput将dput(df.one)的输出粘贴到问题中
标签: r