【问题标题】:convert commas in a column of a data set points r在数据集点 r 的列中转换逗号
【发布时间】:2013-12-09 02:20:48
【问题描述】:

我从 excel 中导入了一个数据集。我有一列“高度”,我想用“。”替换“,”。 . 我尝试使用此命令,但它给了我错误。

apply(apply(DATASET$Height, 2, gsub, patt=",", replace="."), 2, as.numeric)

非常感谢您的帮助

【问题讨论】:

  • 没有原始数据很难调试。你为什么不给我们一些高度的样本dput(head(DATASET$Height))?此外,这里不需要apply:您可以直接在Height 向量上运行gsubas.numeric也一样。
  • 我们不知道如何您将数据导入 R,但您应该检查 read.* 函数中的 dec 参数以获取正确的小数点开始。设置dec = ",",将它们转换为R标准"."
  • 在导入数据时使用dec=","参数会更容易:D
  • 感谢您的回答。如果我添加 dec="," 所以 R 不要从 excel 中导入所有数据集。

标签: r excel dataset dataframe apply


【解决方案1】:

重新编码数据框“数据集”中的“高度”列:

DATASET$Height <- gsub(",",".",DATASET$Height,fixed=TRUE)

有什么错误吗?如果不是,您可以继续将该列转换为数字。 转换为数字时出错?除了“,”之外,您可能还有其他字符会阻止 R 将值读取为数字。在这种情况下,您需要再次应用 gsub 以删除所有非数字字符。

【讨论】:

    【解决方案2】:

    首先,您应该检查它是否是字符。然后,我会用逗号分割字符串,然后用点粘贴它们:

    假设 a 是您使用 DATASET[["Height"]] 得到的结果

    a <- c("234,23", "2314,54", "234,65")
    

    然后使用sapply,您可以拆分和折叠每个字符元素:

    b <- sapply(a,
      function(string){
        paste0(unlist(strsplit(string, split=",")),collapse=".")
      })
    

    现在,您可以将DATASET[["Height"]] 替换为b

    【讨论】:

    • 非常感谢您的帮助,我的身高是一个因素类。与您的程序完全取代。 :D
    猜你喜欢
    • 2014-01-28
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2015-10-20
    相关资源
    最近更新 更多