【发布时间】:2021-03-28 13:28:31
【问题描述】:
从 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(在这里我无法构建一个合适的循环来实现这一点)
有什么想法吗?
谢谢!!
【问题讨论】:
-
你可以做类似
as.data.frame.matrix(table(stack(df)))的事情。 -
“stack.data.frame(df) 中的错误:未选择向量列”
-
确保您的列是字符,而不是因子。
标签: r dataframe loops foreach binary