我有一个温度格式为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。
答案 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]]
获取该列。