1
我想將變量傳遞給一個函數,並將它們用作列表,並且我有一個函數用「=」分割字符向量的項,並且將它們放入列表中。創建一個列表,從一個字符向量提供給一個函數
my.function <- function(x) {
args <- x
newl <- list()
for (i in 1:length(args)) {
keyval <- strsplit(args[[i]],"=")[[1]];
key <- keyval[1]; val <- keyval[2];
newl[[ key ]] <- val;
}
return(newl)
}
char<- c("name=value_1", "title=title", "show=show")
my.function(char)
$name
[1] "value_1"
$title
[1] "title"
$show
[1] "show"
然後我可以使用函數內這些參數只是這樣做:
args[['title']]
但我當包含在這樣的字符等號它工作正常,當然想將變量傳遞給函數,而不僅僅是字符。所以,我想的功能能夠工作當我這樣做:
value_1 = "A"
show= TRUE
title= paste("This is my title for ", value_1, sep="")
my.function(name=value_1, title=title, show=show)
我可以只粘貼值是這樣的:
char= c(paste("name=", value_1, sep=""),
paste("title=", title, sep=""),
paste("show=", show, sep=""))
但我不知道是否有更好的方法將這些變量作爲參數傳遞給函數。感謝您的幫助!
謝謝斯文...如果我想使用它在我具備的功能,它告訴我它無法找到x如果我調整我的功能像這樣:my.function < - function(...){ args < - x; newl < - list();對於(i in 1:length(args)){ keyval < - strsplit(args [[i]],「=」)[[1]]; key < - keyval [1]; val < - keyval [2]; newl [[key]] < - val; } return(newl) } – user2337032
@ user2337032您的最終目標是什麼?你想要什麼函數返回? –
我希望能夠給變量作爲參數給我有同樣的功能(雖然它看起來很簡單,只是轉換爲列表我使它更簡單的帖子...) – user2337032