【发布时间】:2020-01-05 02:29:48
【问题描述】:
将列作为参数传递给 str_split 函数并将其识别为列的正确方法是什么?
library(tidyverse)
library(lazyeval)
df = data.frame("x"=c("apple/pear","pear/banana/kiwi","orange/pear"))
function (col) {
mtcars %>%
select(col) %>%
transform(col = interp(strsplit(~v, "/"), v=as.name(col)) )
}
当前返回错误'strsplit(~v, "-") 中的错误:非字符参数'
【问题讨论】:
-
您使用的基本
strsplit函数需要字符向量输入。从?strsplit,“其他输入,包括一个因子,将给出错误。”所有mtcars列都是数字,而不是字符。因此出现错误“非字符参数”。如果你切换到stringr::str_split,就像你的标题一样,你可能会成功。否则,在拆分之前转换为character。 -
前面的例子没有经过深思熟虑。我添加了一个虚拟数据框来说明问题
-
如何在函数外运行这段代码?