【发布时间】:2020-01-20 12:16:23
【问题描述】:
我有一个包含两列 id 和 result 的数据框,我想根据 id 为结果分配因子水平。因此对于 id "1",结果 c("a","b","c","d") 将具有因子水平 1、2、3、4。
对于 id "2",结果 c("22","23","24") 将具有因子水平 1、2、3。
id <- c(1,1,1,1,2,2,2)
result <- c("a","b","c","d","22","23","24")
我尝试通过拆分对它们进行分组,但是它们将被转换为列表而不是数据框,这会导致建模的长度问题。你能帮忙吗?
【问题讨论】:
-
假设你有数据框
df <- data.frame(id, result),使用dplyr,你可以做到df %>% group_by(id) %>% mutate(row = row_number()) -
@RonakShah 我不相信这是一个骗子,你必须转换
df %>% etc %>% mutate(fac = factor(row)) %>% select(-row),etc是你的代码。 -
@RuiBarradas-ReinstateMonic 当然,如果您不同意,请随时重新打开。
标签: r