R:在R数据表中的特定位置插入列
我有下面的数据表R:在R数据表中的特定位置插入列,r,data.table,R,Data.table,我有下面的数据表 user_id user_system_days event total_pics [1,] 21196680 0 0 124 [2,] 21197699 0 0 4 [3,] 21197861 0 0 14 [4,] 21198820 1 0 21
user_id user_system_days event total_pics
[1,] 21196680 0 0 124
[2,] 21197699 0 0 4
[3,] 21197861 0 0 14
[4,] 21198820 1 0 21
[5,] 21199601 0 0 3
[6,] 21203847 0 0 1
基于column事件中的值,我想在数据表中插入一列,我的方法是编写一个函数,并使用该函数返回一个值
opposite_event <- function(x) {
y <- 1
if (x == 1)
y <- 0
return (y)
}
这实际上添加了列,但值是错误的:
user_id user_system_days event total_pics op_event
[1,] 21196680 0 0 124 0
[2,] 21197699 0 0 4 0
[3,] 21197861 0 0 14 0
[4,] 21198820 1 0 21 0
[5,] 21199601 0 0 3 0
[6,] 21203847 0 0 1 0
根据我的函数,如果
dt$event
的值为1
,则返回值应为0
,如果dt$event
为0,则返回值应为1
,此外,我不确定如何将列插入特定位置,如事件后的列 如果
未矢量化,将其替换为y,这样,若事件==1,则op_事件的值为1;若事件==0,则op_事件应为11@Null-假设是的。@SeñorO重新排列列顺序的最佳方法是什么,例如在事件列之后获取列op_事件?重新排列列的惯用方法是使用setcolorder
。将按引用重新排列(无副本)。Doingdt[,list(.)]
是一个列子集,它将创建一个副本。用另一种方法更新:dt[,op_event:=as.integer(!event)]
user_id user_system_days event total_pics op_event
[1,] 21196680 0 0 124 0
[2,] 21197699 0 0 4 0
[3,] 21197861 0 0 14 0
[4,] 21198820 1 0 21 0
[5,] 21199601 0 0 3 0
[6,] 21203847 0 0 1 0
dt[,op_event := ifelse(event == 0, 1, 0)]