R 将行中的所有数据移到一列上
我正在使用一个名为R 将行中的所有数据移到一列上,r,dataframe,R,Dataframe,我正在使用一个名为myData的数据帧,并试图清理数据。在其中一行(示例代码第3行)中,出现了数据输入错误,B保留为空,C、D、E现在包含B、C、D的数据。如何使用基本命令在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
myData
的数据帧,并试图清理数据。在其中一行(示例代码第3行)中,出现了数据输入错误,B保留为空,C、D、E现在包含B、C、D的数据。如何使用基本命令在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
我们可以首先得到
B
为NA
的值的索引,然后移动这些行的列值
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
数据
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")
df请注意:我的实际数据集有10000多行和20多列,因此我想可以引用特定的行并更新条目,但我甚至不知道如何正确执行。如果可能的话,我仍然需要它来维护每种类型的数据。因此,对于B
为空的每一行,您希望将该行中的值向左移动吗?因此,这将使列E
为空或带有NA
?对吗?我想我解释得不好。我特别希望第3行读取“a,2,c,1,NA”,因为这个错误只发生一次。如果我希望这样做,而不是找到空白的任何实例,它只影响第3行呢?@theShuffle Dodf[3,2:(ncol(df)-1)]我得到一个错误,因为我的一些数据类型是因子。如何解决这个问题?首先将所有数据转换为字符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")