在特定列[R]中仅创建具有非NA的新列

gar

我有以下数据结构...

> data <- data.frame(txt = paste0("f", 1:8), 
    a = c(NA, NA, NA, "A", "B", "A", NA, "C"), 
    b = c("D", "A", "C", NA, NA, NA, NA, NA), 
    c = c(NA, NA, NA, NA, NA, NA, "C", NA))

> data
#   txt    a    b    c
# 1  f1 <NA>    D <NA>
# 2  f2 <NA>    A <NA>
# 3  f3 <NA>    C <NA>
# 4  f4    A <NA> <NA>
# 5  f5    B <NA> <NA>
# 6  f6    A <NA> <NA>
# 7  f7 <NA> <NA>    C
# 8  f8    C <NA> <NA>

...,我想创建一个包含这些非NA列的值的新列(理论上,只有一个col)。

> data$tmp <- sapply(1:nrow(data), function(i) gsub("NA", "", paste(as.data.frame(data[i,-1]), collapse = "")))
> data
#   txt    a    b    c tmp
# 1  f1 <NA>    D <NA>   D
# 2  f2 <NA>    A <NA>   A
# 3  f3 <NA>    C <NA>   C
# 4  f4    A <NA> <NA>   A
# 5  f5    B <NA> <NA>   B
# 6  f6    A <NA> <NA>   A
# 7  f7 <NA> <NA>    C   C
# 8  f8    C <NA> <NA>   C

这段代码似乎可以按我的意愿工作,但是我有数百万行,而且速度太慢了……有什么可以帮助我找到更好的解决方案的吗?提前致谢。

卡尔提克S

这项工作会:

library(dplyr)
data %>% mutate(tmp = coalesce(a,b,c))
     a    b    c tmp
1 <NA>    D <NA>   D
2 <NA>    A <NA>   A
3 <NA>    C <NA>   C
4    A <NA> <NA>   A
5    B <NA> <NA>   B
6    A <NA> <NA>   A
7 <NA> <NA>    C   C
8    C <NA> <NA>   C

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从具有最多数据的三列中创建组合列(非NA)

来自分类Dev

如何使用其他多个列中的所有非NA值创建新列?

来自分类Dev

从 R 中具有相同 ID 的行创建新变量(在新列中但不创建新列)

来自分类Dev

R:在data.frame中创建一个具有特定非连续条件的新列

来自分类Dev

如何在仅具有ID列的SQLite表中创建新行?

来自分类Dev

从 R 中具有不同值的现有列创建新列

来自分类Dev

向具有特定查询的PHP动态创建的表中添加新列

来自分类Dev

计算数据框中的特定值并创建具有总和的新列

来自分类Dev

根据R中具有已修改名称的先前列的值创建多个新列

来自分类Dev

在R的特定列中查找具有NA的行的唯一标识

来自分类Dev

用R中的新数据集(具有相同名称的列)的值替换列中的NA

来自分类Dev

用R中的新数据集(具有相同名称的列)的值替换列中的NA

来自分类Dev

R- 在四列中的至少一列中选择具有非 NA 值的行

来自分类Dev

根据 r 中特定行上方和下方的值构建具有值的新列

来自分类Dev

根据R中的现有列创建新列

来自分类Dev

查询R中组的特定行以创建新列

来自分类Dev

在R中删除具有非数字列值的数据

来自分类Dev

在R中,如何过滤数据框以仅包括具有> = 2个非NA值的行?

来自分类Dev

创建具有多行的新列

来自分类Dev

SQL在新列中创建具有先前日期的新列

来自分类Dev

用R中另一列中的值替换特定列中的非NA值

来自分类Dev

从多列中仅获取值(非0,非NA)

来自分类Dev

如何获取在r中具有NA的列数?

来自分类Dev

如何从具有重复的R的另一个数据框中更新具有特定列的数据框中的新列?

来自分类Dev

在R中的data.table中按分组,仅保留列中的非NA值

来自分类Dev

如何基于在熊猫数据框中具有NaN的现有列创建新列?

来自分类Dev

从R中的列创建具有最接近值的标志

来自分类Dev

计算R中具有特定列条件的行

来自分类Dev

删除R中具有特定行值的列

Related 相关文章

  1. 1

    从具有最多数据的三列中创建组合列(非NA)

  2. 2

    如何使用其他多个列中的所有非NA值创建新列?

  3. 3

    从 R 中具有相同 ID 的行创建新变量(在新列中但不创建新列)

  4. 4

    R:在data.frame中创建一个具有特定非连续条件的新列

  5. 5

    如何在仅具有ID列的SQLite表中创建新行?

  6. 6

    从 R 中具有不同值的现有列创建新列

  7. 7

    向具有特定查询的PHP动态创建的表中添加新列

  8. 8

    计算数据框中的特定值并创建具有总和的新列

  9. 9

    根据R中具有已修改名称的先前列的值创建多个新列

  10. 10

    在R的特定列中查找具有NA的行的唯一标识

  11. 11

    用R中的新数据集(具有相同名称的列)的值替换列中的NA

  12. 12

    用R中的新数据集(具有相同名称的列)的值替换列中的NA

  13. 13

    R- 在四列中的至少一列中选择具有非 NA 值的行

  14. 14

    根据 r 中特定行上方和下方的值构建具有值的新列

  15. 15

    根据R中的现有列创建新列

  16. 16

    查询R中组的特定行以创建新列

  17. 17

    在R中删除具有非数字列值的数据

  18. 18

    在R中,如何过滤数据框以仅包括具有> = 2个非NA值的行?

  19. 19

    创建具有多行的新列

  20. 20

    SQL在新列中创建具有先前日期的新列

  21. 21

    用R中另一列中的值替换特定列中的非NA值

  22. 22

    从多列中仅获取值(非0,非NA)

  23. 23

    如何获取在r中具有NA的列数?

  24. 24

    如何从具有重复的R的另一个数据框中更新具有特定列的数据框中的新列?

  25. 25

    在R中的data.table中按分组,仅保留列中的非NA值

  26. 26

    如何基于在熊猫数据框中具有NaN的现有列创建新列?

  27. 27

    从R中的列创建具有最接近值的标志

  28. 28

    计算R中具有特定列条件的行

  29. 29

    删除R中具有特定行值的列

热门标签

归档