我有一个包含 7 列的数据文件 A,没有缺失值,我将join
一个包含 28 个字段的数据文件 B 统一到该文件中。结果文件是 C。如果在 B 中没有找到匹配项,则 C 中的输出行只有 7 列。如果 B 中有匹配项,则 C 中的输出行有 35 列。我已经选择了填补缺失的 28 个字段,但没有成功join
。-e
我正在尝试做的是MISSOVER
在 R 中复制 SAS 的输入语句。例如,以下代码可以完美运行:
dat <- textConnection('x1,x2,x3,x4
1,2,"present","present"
3,4
5,6')
df <- read.csv(dat, sep=',' , header=T ,
colClasses = c("numeric" , "numeric", "character", "character"))
> df
x1 x2 x3 x4
1 1 2 present present
2 3 4
3 5 6
但是当我尝试加载我的 C 文件时,我收到以下错误(使用TRUE
而不是T
):
df <- read.table( 'C.tab' , header=T , sep='\t', fill=TRUE,
colClasses = c(rep('numeric',7),rep('character',28)))
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 1 did not have 35 elements
第一行(C 中的第二行,在标题之后)确实只有 A 中的 7 个字段。在 SAS 中,我会使用该MISSOVER
语句将所有那些尾随缺失的字段设置为某个缺失值。我怎么能在 R 中做到这一点?谢谢。