Я хочу обновить несколько столбцов в большой таблице с данными обследований домашних хозяйств. Около 20 столбцов имеют расходы, указанные как отрицательные. Тем не менее, я хочу иметь абсолютные значения (для изготовления латексной таблицы). Мне удалось создать новую таблицу данных только с этими обновленными столбцами. Вот пример. Я только хочу, чтобы обновить столбцы 2 и 3:Обновление нескольких столбцов в data.table
library(data.table)
test <- data.table(c(1,2,3,4),c(-2,-3,-4,-5),c(-1,-4,-5,-6),c(1,2,3,6))
test[,lapply(.SD,abs),.SDcols=2:3]
Это дает мне data.table с графами 2 и 3, а не полным data.table.
я могу легко сделать это делает data.frames и использование cbind:
df1.test<-data.frame(test)[,-c(2:3)]
df2.test<-data.frame(test[,lapply(.SD,abs),.SDcols=2:3])
test<-data.table(cbind(df1.test,df2.test))
, но, возможно, есть более разумный способ в data.table.
Благодаря Ренгер
Вы можете использовать библиотеку dplyr package 'library (dplyr); test <- test %>% mutate (V2 = abs (V2), V3 = abs (V3)) ' –
Вы знакомы с оператором': = '? –