我的模式匹配和替换功能出了什么问题

时间:2018-12-05 22:38:32

标签: r function dataframe

我有一个温度格式为XX,X而不是XX.X的数据框。

我可以使用以下代码成功更改它们...

df$tempMedian <- sub(",",".",df$tempMedian) df$tempMedian <- as.numeric(df$tempMedian)

我尝试编写以下函数来执行相同的操作:

comma_to_point <- function(data, colname){ data$colname <- sub(",", ".", data$colname) data$colname <- as.numeric(data$colname) }

当我调用函数时:

comma_to_point(df, tempMedian)

我收到以下错误:

“`$ <-。data.frame`(` tmp `,colname,值= character(0))中的错误:   替换有0行,数据有365“

我的数据帧长365 obs。

1 个答案:

答案 0 :(得分:0)

试一下

comma_to_point <- function(data, colname){
  data[[colname]] <- sub(",", ".", data[[colname]])
  data[[colname]] <- as.numeric(data[[colname]])
  return (data)
}
df = comma_to_point(df, "tempMedian")

在使用变量var='my_column'引用data.frame中的列时,您无法执行df$var,因为R会认为var是列的名称。相反,您可以使用df[[var]]获取该列。