【问题标题】:Transform all factor columns to their type (char, numeric)?将所有因子列转换为它们的类型(字符、数字)?
【发布时间】:2017-11-07 10:06:22
【问题描述】:

我有一个数据框 (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 因子变量?

谢谢。

【问题讨论】:

  • str(df)sapply(df,class) 将识别所有列的类型,包括有序因子。
  • @akrun答案背后的详细信息,请查看以下问题的答案:linklink

标签: r dataframe position factors


【解决方案1】:

我们可以通过遍历列,转换为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')))

【讨论】:

    【解决方案2】:

    通过反复试验挖掘一些,我认为这是一个优雅的解决方案: 名称(x[sapply(x, is.ordered)]) 各位专家怎么看?

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 1970-01-01
      • 2015-01-05
      • 2012-01-25
      • 2018-05-17
      • 2011-02-20
      • 2018-07-31
      • 2011-09-29
      相关资源
      最近更新 更多