R- 在 udf 中使用 gsub
R- using gsub in a udf
我正在尝试创建一个 udf 来查找和替换几个数据框中的一堆不同的字符串。示例:
x <- data.frame(a = c("AA","BB","CC"))
y <- data.frame(b = c("AB","BC","CD"))
如果我手动调用(如下所示),它会正常工作
x$a %<>%
gsub("A", "", .) %>%
gsub("B", "", .)
分别给我-("", "", "CC")
和("","C","CD")
但是如果我像这样在 UDF 中这样做:
col <- function(var) {
var %<>%
gsub("A", "", .) %>%
gsub("B", "", .)
}
col(x$z)
没用。这是有原因的吗?
您需要将其分配给如下列
y$b = col(y$b)
如果您只是调用 col(y$b)
,由于函数作用域,它不会将其存储在实际的数据帧 y
中,即。 var
仅在函数 col
中可用,因此如果您想将 var
从函数 col
中取出,您需要将其分配给局部变量
我正在尝试创建一个 udf 来查找和替换几个数据框中的一堆不同的字符串。示例:
x <- data.frame(a = c("AA","BB","CC"))
y <- data.frame(b = c("AB","BC","CD"))
如果我手动调用(如下所示),它会正常工作
x$a %<>%
gsub("A", "", .) %>%
gsub("B", "", .)
分别给我-("", "", "CC")
和("","C","CD")
但是如果我像这样在 UDF 中这样做:
col <- function(var) {
var %<>%
gsub("A", "", .) %>%
gsub("B", "", .)
}
col(x$z)
没用。这是有原因的吗?
您需要将其分配给如下列
y$b = col(y$b)
如果您只是调用 col(y$b)
,由于函数作用域,它不会将其存储在实际的数据帧 y
中,即。 var
仅在函数 col
中可用,因此如果您想将 var
从函数 col
中取出,您需要将其分配给局部变量