制作R功能

时间:2017-01-17 01:41:07

标签: r function

我正在尝试使用函数来更改列类型。

样品

df = data.table(commission = as.character(c("100 EUR", "200 EUR", "300 EUR")))
df$commission <- as.character(df$commission)

str(df)
 #Classes ‘data.table’ and 'data.frame':    3 obs. of  1 variable:
 #$ commission: chr  "100 EUR" "200 EUR" "300 EUR"
 #- attr(*, ".internal.selfref")=<externalptr> 

功能

colconv <- function(data,colname){
        data$colname <- gsub(data$colname, pattern = " EUR", replacement = "", fixed = T)
        data$colname <- as.numeric(data$colname)
        data
}

我得到......

colconv(df, commission)

#Classes ‘data.table’ and 'data.frame': 3 obs. of  1 variable:
#$ commission: chr  "100 EUR" "200 EUR" "300 EUR"
#- attr(*, ".internal.selfref")=<externalptr> 

它通过R处理,但它什么都没改变。

有人可以建议如何让它发挥作用吗?或任何其他更智能的解决方案?

1 个答案:

答案 0 :(得分:2)

你可能最好只编写你的函数来对一个向量进行操作,然后调用它来分配你的新变量

colconv <- function(x){ as.numeric(gsub(x, pattern = " EUR", replacement = "", fixed = T)) } 

......例如。然后:

df[, commission := colconv(commission)]