将一行中的所有数据移到一列上

时间:2019-10-03 04:44:54

标签: r dataframe

我正在使用一个名为myData的数据框,并且试图清除数据。在其中一行(在示例代码中,第3行)中,有一个数据输入错误,B留为空白,而C,D,E现在包含B,C,D的数据。如何使用RStudio在RStudio中修复此问题基本命令?我完全被困住了。

   A   B   C   D   E
 --------------------
1  a   3   c   2   f
2  a   2   b   1   f
3  a       2   c   1
4  a   1   b   2   f
5  b   2   c   3   e

1 个答案:

答案 0 :(得分:1)

我们首先可以获取BNA的值的索引,然后移动这些行的列值。

rows <- df$B == ""
df[rows, 2:(ncol(df) - 1)] <- df[rows, 3:ncol(df)]
df[rows, ncol(df)] <- NA

df
#  A B C D    E
#1 a 3 c 2    f
#2 a 2 b 1    f
#3 a 2 c 1 <NA>
#4 a 1 b 2    f
#5 b 2 c 3    e

要更改列类型,我们可以使用type.convert

df <- type.convert(df)

数据

df <- structure(list(A = c("a", "a", "a", "a", "b"), B = c("3", "2", 
"", "1", "2"), C = c("c", "b", "2", "b", "c"), D = c("2", "1", 
"c", "2", "3"), E = c("f", "f", "1", "f", "e")), row.names = c("1", 
"2", "3", "4", "5"), class = "data.frame")