【发布时间】:2019-11-07 20:26:20
【问题描述】:
我有一个数据集,其中一堆字符列只有一个值,即列本身的名称。每一行都是一个观察,我想计算每一行存在多少这样的列。
例如:
id multi_value_col single_value_col_1 single_value_col_2
1 A single_value_col_1
2 D2 single_value_col_1 single_value_col_2
3 Z6 single_value_col_2
我想要添加一个列来计算每行有多少个单值列。像这样:
id multi_value_col single_value_col_1 single_value_col_2 count
1 A single_value_col_1 1
2 D2 single_value_col_1 single_value_col_2 2
3 Z6 single_value_col_2 1
我最初的想法是使用mutate_if 和n_distinct,将字符串替换为TRUE,然后可以在mutate 中使用rowSums:
data %>%
mutate_if(~n_distinct(.) == 1, TRUE, .) %>%
mutate(count = rowSums???)
但是,我无法让 mutate_if 工作,而且我也不确定 rowSums 命令是否存在跨行可用的 sum_if TRUE 操作?
【问题讨论】:
-
您可以在代码中发布您的数据示例吗?例如
dput()?也许它也是这样的? stackoverflow.com/questions/18862114/…
标签: r conditional-statements dplyr