【发布时间】:2020-03-28 00:36:04
【问题描述】:
我正在练习编写函数。我写了一个函数,根据分隔符将一列分成不同的列(例如,“:”,“/”)。
如果分隔符不相关,我正在尝试让函数返回错误消息。
这是我正在处理的部分:
myfunc <- function(df, colnum = 2, into = c("a", "b", "c"), sep = ":") {
colnum <- df[ , colnum]
hold <- strsplit(colnum, split = sep)
if (!grepl(sep, df)) stop()
}
即使分隔符相关,这也会返回错误消息。我该如何处理?谢谢你。
【问题讨论】:
-
您正在对整个数据集应用
grepl。应该是向量grepl(sep, df[, colnum]) -
我将其更改为
if (!grepl(sep, df[ , colnum])) stop(),现在我收到此错误消息:Error in[.data.frame(df, , colnum) : undefined columns selected -
另外,
if从 grepl 中查找长度 1 而不是全长。你可能需要用any包裹起来