【发布时间】:2018-04-13 16:07:45
【问题描述】:
假设我有一个数据表:
> a<-data.table(col1=c(7,85,1905,22,250))
col1
1: 7
2: 85
3: 1905
4: 22
5: 250
考虑到这些条件,我想在同一个数据表中添加一个新列:
if col1(i) <10 then "A"
else if col1(i) <100 then "B"
else if col1(i) <1000 then "C"
else "D"
所以,我会得到
col1 col2
1: 7 A
2: 85 B
3: 1905 D
4: 22 B
5: 250 C
我尝试了ifelse 方法,但它在所有列中都添加了“A”,doc 表示此方法仅适用于它使用的向量的第一个元素。
dt[, col2 := ifelse(col1 < 10,'A','B')]
我不想使用复杂而长的循环来做到这一点,所以如果有人能在 R 中解释它是如何工作的,我将不胜感激。
问候。
【问题讨论】:
标签: r for-loop if-statement datatable