我使用fread()来获取这样的数据:
fread(data, select = c("col1", "col2", "missing", "col3"))
其中名称为"缺少"的列不存在。 fread()会自动掉线"丢失"列和返回数据集如下:
col1 col2 col3
a b c
d e f
...
我想知道是否有办法将结果更改为:
col1 col2 missing col3
a b NA c
d e NA f
答案 0 :(得分:0)
此问题已标记为data.table
和fread
,但已吸引a base R answer。因此,我觉得有必要发布data.table
解决方案。
OP希望在data.table
内的特定位置添加特定列,此列似乎缺失。 OP似乎期望select
fread()
参数可以用于此目的但fread()
会打印
警告信息:
在fread(“col1 col2 col3 \ na b c \ nd e f”,:
在列名称标题(区分大小写)中找不到列名“缺失”,跳过。
因此必须在之后添加缺失的列:
library(data.table)
# add column by reference
DT[, missing := NA][]
col1 col2 col3 missing 1: a b c NA 2: d e f NA
# rearrange column order
setcolorder(DT, c("col1", "col2", "missing", "col3"))[]
col1 col2 missing col3 1: a b NA c 2: d e NA f
请注意,data.table
可以通过引用来执行操作,即,不需要复制整个对象以添加单个列或更改属性。
library(data.table)
DT <- fread(
"col1 col2 col3
a b c
d e f",
select = c("col1", "col2", "missing", "col3"))