r - 将字符数据帧转换为具有 R 中二进制变量的“更清晰”的数据帧
问题描述
从 R 中的数据框开始,如下所示(df):
year_1 <- c('James','Mike','Jane', NA)
year_2 <- c('Evelyn', 'Jackson', 'James', 'Avery')
year_3 <- c('Harper', 'Avery', NA, NA)
df <- data.frame(year_1, year_2, year_3)
...我想把它转换成df1之类的东西(当然我的原始数据框中有数百个元素,所以我不能手动去)
names <- c('James','Mike','Jane','Evelyn', 'Jackson', 'Avery', 'Harper')
year_1 <- c('YES','YES','YES', 'NO', 'NO', 'NO', 'NO')
year_2 <- c('YES','NO','NO', 'YES', 'YES', 'YES', 'NO')
year_3 <- c('NO','NO','NO', 'NO', 'NO', 'YES', 'YES')
df_1 <- data.frame(year_1, year_2, year_3)
rownames(df_1) <- names
我试图:
- 将 df 的所有元素转换为具有唯一元素的字符串向量
- 使用步骤 1 的名称构造 df1 的结构)
- 尝试用循环填充 df1 (在这里我无法构建一个合适的循环来实现这一点)
任何想法?
谢谢!!
解决方案
使用stack
+的基本 R 选项table
> as.data.frame(ifelse(table(stack(df)) == 1, "YES", "NO"))
year_1 year_2 year_3
Avery NO YES YES
Evelyn NO YES NO
Harper NO NO YES
Jackson NO YES NO
James YES YES NO
Jane YES NO NO
Mike YES NO NO
推荐阅读
- typescript - 打字稿中泛型的泛型参数和类型
- lua - lua:`zlib` 与 HTTP 不兼容?
- r - 如果某个元素不在将产生 TRUE 的向量中,如何创建逻辑测试
- mysql - MySQL COUNT(DISTINCT) 使用 GROUP BY 给出错误值
- python - Django 模板未扩展
- node.js - 每次发布调用以在 aws s3 中上传图像时,唯一 ID(键)都不会更改,因此会替换相同的图像
- javascript - 如何将对象原型打包在单独的文件中
- html - 如何制作水平导航栏?
- node.js - 可以连接到节点中的kafka实例吗?
- google-apps-script - 获取 Google Drive 中多个文件的共享链接以放入电子表格