我正在尝试编写一个函数,允许用户输入各种参数("means"、"temp"等),然后将这些参数编译成一个列表,以便我可以使用它们。将提取列表中的值并将其指定给对象。
param <- function(){
parameters <- c("means","variance","temp","gene","add")
x <- list()
for(i in 1:length(parameters)){
z <- readline(paste("Input ", parameters[i], ": ", sep=""))
#store inputs in vector x
x[[z]] <- z
#x[[i]] <- z
#x[i] <- z
} #End of for loop to bring in inputs
#Bind results into a vector
y=c(x[[1]],x[[2]],x[[3]],x[[4]],x[[5]])
#Assign answers to proper variable names so they can be used to index.
means <- y[1]; variance <- y[2]; temp <- y[3]; gene <- y[4]; add <- y[5]
#means <- x[[1]]; variance <- x[[2]]; temp <- x[[3]]; gene <- x[[4]]; add <- x[[5]]
} #End of function to bring in inputs
我想用这些对象来索引一个更大的数据帧(strn.x)
yav=strn.x[NT==temp, means]
我引用过https://stat.ethz.ch/pipermail/r-help/2008-April/158757.html,学习如何将用户输入分配给对象,我认识到(基于从data.table的子集合中检索特定值)我的部分问题是对象所属的类。我曾尝试使用"[["提取不带名称的值,但它们仍然是类"list"或"data.frame",这取决于我在上面的函数中包含的内容。
means
V1
1 FT_mn
class(means)
[1] "data.frame"
我希望他们采用以下形式:
[1] FT_mn
我需要做些什么才能让它发挥作用?
尝试unlist()将数据帧或列表转换为向量。