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
会有一行表示
法语
,另一行表示
德语
,对吗?