小编ale*_*gan的帖子

如何根据R中的列内容将列名称拉入新列

我需要做三个动作:

1. 计算表中按行非 NA 的值并对它们求和(在单列“check_na”中)

[我将我的解决方案放在下面,如果有人能弄清楚如何使用地图来做到这一点,我很感兴趣。我已经检查过 /sf/ask/3547628941/ 来获取答案]

2. 对于那些不为 NA 的值,创建一个列,将这些唯一值连接到新列“块详细信息”中。

[我不知道该怎么做]

3. 如果“check_na”有值,则提取列名称并将它们连接到新列中(“块类型”)

[我不知道该怎么做]

这就是最终产品应该的样子。请注意,在第 2 行中,即使“b”出现两次,它在“块详细信息”中只显示一次,但包含它的列单独列出“y|z”

      w x     y     z     na_check block_detail block_type
  <dbl> <chr> <chr> <chr>    <int> <chr>        <chr>     
1    NA a     NA    NA           1 a            x         
2    NA NA    b     b            2 b            y|z       
3    NA NA    b     c            2 b|c          y|z       
4    NA NA    NA    NA           0 NA           NA        
5    NA NA    NA    b            1 b            z 
Run Code Online (Sandbox Code Playgroud)

下面是示例数据和我对第 1 部分的解决方案:


#sample data …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table tidyr purrr

3
推荐指数
1
解决办法
150
查看次数

标签 统计

data.table ×1

dplyr ×1

purrr ×1

r ×1

tidyr ×1