提问人:Aleksandra 提问时间:4/2/2020 更新时间:4/2/2020 访问量:198
在函数中调用 sep=“ ”
Calling sep=" " inside the function
问:
所以,我想在do.call(paste)中制作一个参数sep = “ ”。
fun <- function(x, sep=" "){
stopifnot(is.list(x))
k <- length(x)
n <- lengths(x)
stopifnot(length(unique(n))==1)
do.call(paste, c(x, sep))
}
不幸的是,这个不起作用,我找不到任何类似的主题。 感谢您的帮助:)
答:
0赞
ThomasIsCoding
4/2/2020
#1
我认为你可能需要 within ,因为 lhs 是 ,而 rhs 是函数的输入参数,即sep = sep
do.call
sep
paste
sep
fun
fun <- function(x, sep=" "){
stopifnot(is.list(x))
k <- length(x)
n <- lengths(x)
stopifnot(length(unique(n))==1)
do.call(paste, c(x, list(sep=sep)))
}
例
> fun(as.list(seq(3)),"-")
[1] "1-2-3"
评论
0赞
ThomasIsCoding
4/2/2020
@Aleksandra 不客气。如果您认为我的回答对您的问题有所帮助并解决了您的问题,请随时接受,谢谢!
0赞
user2554330
4/2/2020
使用可能更好。它在这里给出了相同的结果(因为是一个列表,因此会自动强制到列表),但是在将来的某一天,当不一定是列表时,您可能会尝试重用此代码。do.call(paste, c(x, list(sep = sep)))
x
sep
x
上一个:数据透视表 - 添加总计的百分比
下一个:材料的克隆工作不正常
评论
do.call(paste, c(x, sep=" "))