R:在表格中将某些行移动一列

PC-*_*ats 2 r dataframe dplyr

我有看起来像这样的数据框X。它具有4列和5行。

名字年龄性别类别
A 12 M C1
B 10 F C2
C M C1 N / A
D F C2 N / A
E F C1 N / A

我想将所有数据从第2列(年龄)和第3行向前移一列,以使性别和类别对齐,从而将错误填写的年龄数据留为空白。我的结果集应如下所示:

名字年龄性别类别
A 12 M C1
B 10 F C2
C N / A M C1
D N / A F C2
E N / A F C1

请注意:这是来自具有4百万记录和52列的非常大的数据集的情况。任何帮助都感激不尽。提前致谢!

小智 5

像这样:

nc  <- ncol(dfr)
dfr[-(1:2), 3:nc] <- dfr[-(1:2), 2:(nc-1)]
dfr[-(1:2), 2] <- NA
Run Code Online (Sandbox Code Playgroud)

行中的负索引表示“除行1和2外的所有内容”。

  • which(is.na(dfr [,3]))会告诉您第3列的哪些行是NA。 (2认同)