我有一个简单的数据帧:
ID Col1 Col2 Col3 Col4
1 NA NA NA NA
1 5 10 NA NA
1 NA NA 15 20
2 NA NA NA NA
2 25 30 NA NA
2 NA NA 35 40
Run Code Online (Sandbox Code Playgroud)
我想重新格式化它:
ID Col1 Col2 Col3 Col4
1 5 10 15 20
2 25 30 35 40
Run Code Online (Sandbox Code Playgroud)
(请注意:真实数据集有数千行,而值来自生物数据 - NA除了NAs是不相交的,s之后没有简单的模式,是的,每个行正好有3行ID).
第一步:摆脱只有NA值的行.
从表面上看,这看起来很简单,但我遇到了一些问题.
complete.cases(DF)返回all FALSE,所以我不能真正使用它来删除所有NAs 的行,如DF[complete.cases(DF),].这是因为所有行至少包含一行NA.
由于NAs想要传播自己,其他方案使用is.na …
我知道这是一个重复的Q但我似乎无法再找到这个帖子
使用以下数据
df <- data.frame(A=c(1,1,2,2),B=c(NA,2,NA,4),C=c(3,NA,NA,5),D=c(NA,2,3,NA),E=c(5,NA,NA,4))
A B C D E
1 NA 3 NA 5
1 2 NA 2 NA
2 NA NA 3 NA
2 4 5 NA 4
Run Code Online (Sandbox Code Playgroud)
分组A,我想使用tidyverse解决方案的以下输出
A B C D E
1 2 3 2 5
2 4 5 3 4
Run Code Online (Sandbox Code Playgroud)
我有很多小组A.我想我看到了一个答案,coalesce但我不确定如何让它发挥作用.我想要一个同样适用characters的解决方案.谢谢!
这个问题不是重复的,因为我的值data.frame 不同NA in all Columns and therefore the solution mentioned in that question does not work.
我有data.frame很多NA值,我想删除所有具有 NA 值的单元格(重要:不是行或列,单元格)。原来的样子是这样的:
A B
1 NA
NA 2
2 NA
NA NA
NA NA
NA 4
3 5
Run Code Online (Sandbox Code Playgroud)
期望的结果如下所示:
A B
1 2
2 4
3 5
Run Code Online (Sandbox Code Playgroud)
列数必须保持相同,但值是否保留在同一行上也没关系。他们可以向上移动。
我可以想象可以删除所有具有 NA 条件(也许具有 apply)的单元格并获得结果。或者也许是一个简单的排序?
谢谢。
更新:
A B C
1 3
2
4 3
1 2
3 5
4
9
7 1
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据框
Name Visit Arrival Departure
Jack week 1 8:00 NA
Jack week 1 NA 8:30
Sally week 5 9:00 NA
Sally week 5 NA 9:30
Adam week 2 2:00 NA
Adam week 2 NA 3:00
Run Code Online (Sandbox Code Playgroud)
到达和离开时间最初是行,我转入colums这就是为什么有空值.我想基于名称和访问合并行,所以到达和离开是在同一行
Name Visit Arrival Departure
Jack week 1 8:00 8:30
Sally week 5 9:00 9:30
Adam week 2 2:00 3:00
Run Code Online (Sandbox Code Playgroud)
任何解决方案都会受到赞赏,在那里尝试合并时会遇到困难.