R 分割因子水平
这是一个看似简单的问题,我找不到答案 我有一个数据帧R 分割因子水平,r,dataframe,R,Dataframe,这是一个看似简单的问题,我找不到答案 我有一个数据帧 df <- data.frame(respondent = factor(c(1, 2, 3, 4, 5, 6)), language = factor(c("English", "English", "French", "French, German", "German", "German"))) df我们可以使用从tidyr中分离行,然后使用mutate将语言转换回因子。生成的语言列将是一个因素,每个语言都有一个级别: libra
df <- data.frame(respondent = factor(c(1, 2, 3, 4, 5, 6)), language = factor(c("English", "English", "French", "French, German", "German", "German")))
df我们可以使用从tidyr
中分离行
,然后使用mutate
将语言
转换回因子
。生成的语言
列将是一个因素,每个语言都有一个级别:
library(dplyr)
library(tidyr)
df = df %>%
separate_rows(language) %>%
mutate(language = factor(language))
结果:
respondent language
1 1 English
2 2 English
3 3 French
4 4 French
5 4 German
6 5 German
7 6 German
> df$language
[1] English English French French German German German
Levels: English French German
我们可以使用从tidyr
中分离行
,然后使用mutate
将语言
转换回因子
。生成的语言
列将是一个因素,每个语言都有一个级别:
library(dplyr)
library(tidyr)
df = df %>%
separate_rows(language) %>%
mutate(language = factor(language))
结果:
respondent language
1 1 English
2 2 English
3 3 French
4 4 French
5 4 German
6 5 German
7 6 German
> df$language
[1] English English French French German German German
Levels: English French German
你说的是“数据帧”,但你的代码只显示了一个向量。在向量上执行此操作要比在数据帧上容易得多,在数据帧中,复制行时可能需要携带其他列?您的示例是否足够,或者您是否真的有数据帧,如果有,是否还有其他列需要与结果保持匹配?如果您有一个包含更多列的数据框,请更新您的示例以匹配(一个额外的列可以用于说明)。@pieca:一个非常不同的问题。链接的解决方案无助于拆分因子级别。@Gregor:你说得对。修正。把法语、德语水平分成两行,你的意思是把它们分成两行,每种语言一行吗?因此,应答者4
将有一行表示法语
,另一行表示德语
,对吗?您说的是“数据帧”,但您的代码只显示了一个向量。在向量上执行此操作要比在数据帧上容易得多,在数据帧中,复制行时可能需要携带其他列?您的示例是否足够,或者您是否真的有数据帧,如果有,是否还有其他列需要与结果保持匹配?如果您有一个包含更多列的数据框,请更新您的示例以匹配(一个额外的列可以用于说明)。@pieca:一个非常不同的问题。链接的解决方案无助于拆分因子级别。@Gregor:你说得对。修正。把法语、德语水平分成两行,你的意思是把它们分成两行,每种语言一行吗?所以被调查者4
会有一行表示法语
,另一行表示德语
,对吗?