使用向量替换行子集的列值

时间:2015-10-12 11:03:42

标签: r

我正在尝试使用向量值替换数据框中行的子集(值< 6)的列(簇)的值。

df <- structure(list(value = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), cluster = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0)), .Names = c("value", "cluster"), row.names = c(NA, 
-10L), class = "data.frame")

new_cluster <- structure(list(cluster = c(1, 1, 2, 2, 2)), .Names = "cluster", row.names = c(NA, 
-5L), class = "data.frame")

我知道如何将行子集的列值更改为一个值:

df[df$value<6,]$cluster <- 1

但是我想引用一个向量(new_cluster)而不是单个值。我已经尝试了下面没有给出所需输出但是我确信必须有一个简单的方法来做到这一点。

df[df$value<6,]$cluster <- new_cluster

我正在尝试实现以下数据框架:

     value       cluster
1      1             1
2      2             1
3      3             2
4      4             2
5      5             2
6      6             0
7      7             0
8      8             0
9      9             0
10    10             0

1 个答案:

答案 0 :(得分:3)

您需要从new_cluster获取向量:

df[df$value<6,]$cluster = new_cluster$cluster

替换仅在=两侧的对象属于同一类型时才有效,在这种情况下是LHS上的向量和RHS中有一列的data.frame。