【发布时间】:2019-07-01 10:39:44
【问题描述】:
我有一个要剪切的数据框,并将每个子集保留为新列表的一个元素。切割是根据单元格的值给出的。例如,如果我有:
> df
X1 X2
1 red 1
2 blue 3
3 green 2
4 pierre 10
5 pink 4
6 blue 3
7 green 2
8 eric 25
9 purple 8
10 red 1
11 anna 30
12 blue 3
13 green 2
14 black 5
15 yellow 6
16 marie 40
17 violet 7
> df2
X1 X2 X3
1 pierre eric 77
2 anna marie 100
我想在其中限制的子集中切割 df,其中 X1 的值等于 df2 中 X1(上限)和 X2(下限)给出的值。 为了更清楚,我希望我的列表看起来像这样:
> list
[[1]]
X1 X2
4 pierre 10
5 pink 4
6 blue 3
7 green 2
8 eric 25
[[2]]
X1 X2
11 anna 30
12 blue 3
13 green 2
14 black 5
15 yellow 6
16 marie 40
我尝试使用 for 循环来做到这一点:
> for (i in 1:nrow(df2)){
list[i]<-list(df[which(df[,"X1"]==df2[i,"X1"]):which(df[,"X1"]==df2[i,"X2"]),])
}
但我收到以下错误消息:
Error in list[i] <- list(df[which(df[, "X1"] == df2[i, "X1"]):which(df[, :
object of type 'builtin' is not subsettable
您知道什么是错误的和/或获得预期结果的不同方法吗?
【问题讨论】:
标签: r list dataframe for-loop subset