将所有因子列转换为它们的类型(char,numeric)?

时间:2017-11-07 10:06:22

标签: r dataframe position factors

我有一个数据框(df),其中包含一些分解列:

col1 (numeric factor) col2 (char factor) col3 (ord factor p < r < c)
1                     a                  r 
2                     b                  p
3                     c                  c

1,2,3 are numeric factors, a,b,c are char factors and col3 p,r,c are ord factor column.

请告知我如何将所有这些内容转换为数字和字符 使col1的类型为数字,col2和col3的类型为char。 请帮助我如何在数据框中找到ord因子变量?

感谢。

2 个答案:

答案 0 :(得分:4)

我们可以通过循环遍历列,转换为character然后使用type.convert

来完成此操作
df1[] <- lapply(df1, function(x) type.convert(as.character(x), as.is = TRUE))

数据

df1 <- data.frame(col1 = c('1', '2', '3'), col2 = c('a', 'b', 'c'),
             col3 = ordered(c('p', 'r', 'c')))

答案 1 :(得分:0)

通过试验和错误挖掘一些,我认为这是一个优雅的解决方案: 名称(x [sapply(x,is.ordered)]) 你有什么专家的想法?