r - 将数据帧转换为r中的二进制特征
问题描述
我有一个数据框:
参与者 <- c(A, A, A, B, C, C)
答案 <- c(alpha, beta, gamma, beta, beta, gamma)
participants answers
A alpha
A beta
A gamma
B beta
C beta
C gamma
“答案”列包含的不仅仅是这个小集合。
如何将其变成如下二进制特征:
participant answers value
A alpha 1
A beta 1
A gamma 1
B alpha 0
B beta 1
B gamma 0
C alpha 0
C beta 1
C gamma 1
我的猜测是我也必须获得“答案”和“参与者”的水平?
但我不确定下一步该怎么做。谢谢!
解决方案
如果原始数据为'df1',则complete
在创建一列1s后使用
library(tidyr)
library(dplyr)
df1 %>%
mutate(value = 1) %>%
complete(participants, answers, fill = list(value = 0))
-输出
# A tibble: 9 × 3
participants answers value
<chr> <chr> <dbl>
1 A alpha 1
2 A beta 1
3 A gamma 1
4 B alpha 0
5 B beta 1
6 B gamma 0
7 C alpha 0
8 C beta 1
9 C gamma 1
数据
df1 <- structure(list(participants = c("A", "A", "A", "B", "C", "C"),
answers = c("alpha", "beta", "gamma", "beta", "beta", "gamma"
)), class = "data.frame", row.names = c(NA, -6L))
推荐阅读
- java - 使用处理实现 GLSL 着色器以进行聚光灯
- python - Reds_r 未被识别为有效的 RGBA 参数
- css - 动画在 Safari 和 IE 11 中无法处理页面重定向
- android - Android FlexBox 区分显示填充问题
- spring - 弃用 spring-security-oauth 作为客户端
- solace - 无法在同一连接上使用不同的 msgVPN 连接到多个 Solace 队列
- jquery - 是否可以循环设置剑道 UI 配置?
- ios - 并行http请求
- reactjs - 使用 react-pose 的 React 路由器页面转换似乎没有做任何事情
- node.js - Jest Mock 从节点模块全局模拟