r - 如何删除 R 中的 na 并使低于值上升
问题描述
我有一个如下数据框:
如何删除 na 并使用以下值上涨?
谢谢
id name.america name.europe name.asia
1 a <NA> <NA>
2 <NA> b <NA>
3 <NA> <NA> c
4 d <NA> <NA>
改成:
id name.america name.europe name.asia
1 a b c
2 d
解决方案
我们可以遍历列并删除NA
,然后在获取元素的长度后通过在末尾附加lengths
来使元素的 相同。基于此,对数据集的“id”列进行子集化并附加输出list
NA
max
list
lst <- lapply(df1[-1], na.omit)
lst1 <- lapply(lst, `length<-`, max(lengths(lst)))
out <- data.frame(lst1)
out1 <- cbind(id = df1$id[seq_len(nrow(out))], out)
out1
# id name.america name.europe name.asia
#1 1 a b c
#2 2 d <NA> <NA>
如果我们需要NA
改为空格(""
) - 不推荐
out1[is.na(out1)] <- ""
数据
df1 <- structure(list(id = 1:4, name.america = c("a", NA, NA, "d"),
name.europe = c(NA, "b", NA, NA), name.asia = c(NA, NA, "c",
NA)), class = "data.frame", row.names = c(NA, -4L))
推荐阅读
- mysql - Flutter 可扩展列表视图
- android - 如何从隐式意图中删除共享和打印选项?
- java - 为什么我的程序仅在一个循环后终止,而没有第二次提示?
- firebase - 从 PWA 服务工作者调用 Firebase 可调用函数以响应对推送通知的点击
- go - 使用 golang-ci lint 错误获取 corp 包
- amazon-eks - EKS,如何创建 2 个 LoadBalancer 服务共享一个静态 IP
- reactjs - React Router 没有从像 path="/products?category=:category" 这样的请求中获取数据
- c# - 发布后 Blazor Wasm 托管客户端(控制台)异常
- python - Scrapy run 爬行一个接一个
- sql - hive UDF 以在 UDF 代码中获取表值