我有一个看起来像这样的字符向量
vector <- c('a','b','c','d','e')
我在for循环中有一个对象,它将输入视为:
out[a,] <- c(a,b,c,d,e)
a-e
是具有值的变量(例如,a=0.7
)。我想为out
对象提供一些trans vector
对象的transfomred版本。我试过了
paste(noquote(vector),collapse=',')
但是,这只会返回
"a,b,c,d,e"
哪个仍无用。
答案 0 :(得分:3)
反转函数调用的顺序:
noquote(paste(vector, collapse = ','))
这将打印[1] a,b,c,d,e
。如果您不喜欢[1]
使用
cat(paste(vector, collapse = ','))
打印
a,b,c,d,e
答案 1 :(得分:3)
您可以使用mget
将对象放入命名列表中:
# data
a <- 1; b <- 2; c <- 3; d <- 4; e <- 5
mget(letters[1:5])
$a
[1] 1
$b
[1] 2
$c
[1] 3
$d
[1] 4
$e
[1] 5
或将其mget
包裹在unlist
中以获取命名向量:
unlist(mget(letters[1:5]))
a b c d e
1 2 3 4 5
答案 2 :(得分:1)
这是一个非常基本的问题,每次都会让我几乎犯一个小错误。我用 R语言简化并创建了一个函数。
你在这里哥们!
numbers <- list(2,5,8,9,14,20) #List containing even odd numbers
en<-list() #Initiating even numbers’ list
on<-list() #Initiating odd numbers’ list
#Function creation
separate <- function(x){
for (i in x)
{
ifelse((i%%2)==0, en <- paste(append(en,i, length(en)+1), collapse = ","),
on <- paste(append(on,i, length(on)+1), collapse = ","))
}
message("Even numbers are : ", en)
message("Odd numbers are : ", on)
}
#Passing the function with argument
separate(numbers)
偶数是:2,8,14,20
奇数是:5,9