R中变量中不同因子的不同数值运算

时间:2018-03-22 13:09:09

标签: r

我们假设我有这个数据框:

df <- data.frame(V1 = 1:6,
                 V2 = rep(c("DC1", "DC2"), each = 3),
                 stringsAsFactors = FALSE)

如何根据DC1和DC2进行不同的操作?

我想说我想乘以属于DC1的3个V1值,然后将那些属于DC2的值除以2。

1 个答案:

答案 0 :(得分:2)

使用greplifelse 对于DC1,您可以使用

df$V1 <- ifelse(grepl("DC1", df$V2), df$V1 * 3, df$V1)

对于DC2,您可以使用

df$V1 <- ifelse(grepl("DC2", df$V2), df$V1 / 2, df$V1)

使用这两行导致

   V1  V2
1 3.0 DC1
2 6.0 DC1
3 9.0 DC1
4 2.0 DC2
5 2.5 DC2
6 3.0 DC2

如果您想要更多不同的操作,可以使用functionsfor循环。