【问题标题】:How to replace one column with another using data.table?如何使用 data.table 将一列替换为另一列?
【发布时间】:2021-01-15 13:20:32
【问题描述】:
我有一个数据框:
ID value1 value2
1 f a
2 k p
3 c j
我想用 value2 中的值替换列 value1 中的值并删除列 value2。所以想要的结果是:
ID value1
1 a
2 p
3 j
我需要用 data.table 来做。我需要用函数来做,而不是从头开始重新创建数据框。
【问题讨论】:
标签:
r
dataframe
data.table
【解决方案1】:
library(data.table)
setDT(df)
df[, c("value1", "value2") := .(value2, NULL)]
或setnames()
df[, value1 := NULL]
setnames(df, "value2", "value1")
数据
df <- data.frame(
ID = 1:3, value1 = c("f", "k", "c"), value2 = c("a", "p", "j")
)
【解决方案2】:
您可以执行以下操作
> setDT(df)[, .(ID, value1 = value2)]
ID value1
1: 1 a
2: 2 p
3: 3 j
数据
> dput(df)
structure(list(ID = 1:3, value1 = c("f", "k", "c"), value2 = c("a",
"p", "j")), class = "data.frame", row.names = c(NA, -3L))
【解决方案3】:
使用dplyr
library(dplyr)
df %>%
select(ID, value1 = value2)
数据
df <- structure(list(ID = 1:3, value1 = c("f", "k", "c"), value2 = c("a",
"p", "j")), class = "data.frame", row.names = c(NA, -3L))
【解决方案4】:
使用data.table,您可以:
library(data.table)
setDT(df)
df[, value1:=value2][, value2:=NULL]