根据R中列的条件划分值

时间:2018-10-21 16:05:38

标签: r conditional-statements

我想根据条件划分一列的值。

类似以下内容:

Data$ColumnA [Data$ColumnA>50 && Data$ColumnB> 0] <- Data$ColumnA / 25

问题是Data$ColumnA / 25丢失了“索引”,并划分了列表中的第一个值。

谢谢

1 个答案:

答案 0 :(得分:0)

我宁愿使用data.table代替data.frame,不仅是出于性能方面的考虑,而且还因为语法更紧凑:

library(data.table)

Data <- data.frame(ColumnA = seq(0, 175, by = 25),
                   ColumnB = c(0, 1))
Data
# ColumnA ColumnB
# 1       0       0
# 2      25       1
# 3      50       0
# 4      75       1
# 5     100       0
# 6     125       1
# 7     150       0
# 8     175       1

setDT(Data)  # "convert" data.frame into a data.table

Data[ColumnA > 50 & ColumnB > 0, ColumnA := ColumnA / 25]

Data
# ColumnA ColumnB
# 1:       0       0
# 2:      25       1
# 3:      50       0
# 4:       3       1
# 5:     100       0
# 6:       5       1
# 7:     150       0
# 8:       7       1