我需要做三个动作:
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)