在数据集点r的列中转换逗号

时间:2013-11-24 13:02:08

标签: r excel dataset dataframe apply

我从excel导入了一个数据集。我有一个专栏'Height',我希望将','替换为'。' 。 我试过这个命令,但它给了我错误。

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

非常感谢您的帮助

2 个答案:

答案 0 :(得分:1)

要在数据框'DATASET'中重新编码列'Height':

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

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

答案 1 :(得分:0)

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

假设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