r - R - 在汇总(dplyr 管道)中在一列中显示唯一值而不是对它们进行计数
问题描述
我想重塑我的数据,使与另一列相关的一列中的地区值显示在新创建的列中
df
A B
1 <NA> <NA>
2 a b
3 a d
4 b c
如同 :
> df %>%
+ group_by(A) %>%
+ summarise(n_distinct(B))
# A tibble: 3 x 2
A `n_distinct(B)`
<chr> <int>
1 a 2
2 b 1
3 NA 1
但不是计算出现次数,而是在新列中显示实际值?
如下所示:
df
A B
1 <NA> <NA>
2 a b **d**
4 b c
我尝试传播,但它不起作用,出现以下错误:
错误:行标识符重复
我的两列都是因素,但如果需要可以重新分类。
谢谢!
解决方案
这是spread
创建序列列后使用的选项
library(tidyverse)
df %>%
group_by(A) %>%
mutate(n1 = paste0("B", row_number())) %>%
ungroup %>%
spread(n1, B)
# A tibble: 3 x 3
# A B1 B2
# <fct> <fct> <fct>
#1 a b d
#2 b c <NA>
#3 <NA> <NA> <NA>
数据
df <- data.frame(A = c(NA, 'a', 'a', 'b'), B = c(NA, 'b', 'd', 'c'))
推荐阅读
- r - R 函数的最佳实践——新函数还是重载?
- python - 如何在所有列上使用 RobustScaler?
- c# - Async/Task/Await:Await 实际上并不等待
- wordpress - 从十月 / Laravel 安装重定向
- c# - 如何将 xml 数据发送到 IP。C# 控制台应用程序
- sql - 如何索引 Col1 +'|' + Col2 用于最快的搜索
- logstash - Logstash - 解析 json 事件中的 json 数组
- java - 无法使用可嵌入 ID 创建新实体
- excel - Excel 宏来拉取谷歌图片链接
- android - 将本机代码作为项目的一部分时,Android Studio 3.2 无法调试