将参数传递给 subset() 和 unique()
Passing argument to subset() and unique()
我正在使用 phyloseq 包。
test <- function( ...){
bar <- unique(sampleData[,'pH'])
foo <- subset_samples(phyloseqObject, pH == as.numeric(bar[1]@.Data))
print(foo)
}
test(pH)
我想将 pH 作为参数传递给 test()
但 unique()
不会接受它作为有效参数。我可以将 'pH' 传递给 test()
但 subset_samples()
不会接受它是有效的。我曾尝试将论点强制转换为几种不同的类型,但没有成功。
subset_samples 的来源:
subset_samples <- function(physeq, ...){
if( is.null(sample_data(physeq)) ){
cat("Nothing subset. No sample_data in physeq.\n")
return(physeq)
} else {
oldDF <- as(sample_data(physeq), "data.frame")
newDF <- subset(oldDF, ...)
if( class(physeq) == "sample_data" ){
return(sample_data(newDF))
} else {
sample_data(physeq) <- sample_data(newDF)
return(physeq)
}
}
}
试试这个:
test=function(x,...){
bar=unique(mtcars[,x])
foo=subset(mtcars,mtcars[,x]==bar[1])
return(foo)
}
根据@desc 所说的,我设法解决了这个问题:
test <- function(...){
bar <- unique(sampleData[,...])
foo <- subset_samples(phyloseqObject, eval(parse(bar@names)) == as.numeric(bar[1]))
print(foo)
}
test('pH')
我正在使用 phyloseq 包。
test <- function( ...){
bar <- unique(sampleData[,'pH'])
foo <- subset_samples(phyloseqObject, pH == as.numeric(bar[1]@.Data))
print(foo)
}
test(pH)
我想将 pH 作为参数传递给 test()
但 unique()
不会接受它作为有效参数。我可以将 'pH' 传递给 test()
但 subset_samples()
不会接受它是有效的。我曾尝试将论点强制转换为几种不同的类型,但没有成功。
subset_samples 的来源:
subset_samples <- function(physeq, ...){
if( is.null(sample_data(physeq)) ){
cat("Nothing subset. No sample_data in physeq.\n")
return(physeq)
} else {
oldDF <- as(sample_data(physeq), "data.frame")
newDF <- subset(oldDF, ...)
if( class(physeq) == "sample_data" ){
return(sample_data(newDF))
} else {
sample_data(physeq) <- sample_data(newDF)
return(physeq)
}
}
}
试试这个:
test=function(x,...){
bar=unique(mtcars[,x])
foo=subset(mtcars,mtcars[,x]==bar[1])
return(foo)
}
根据@desc 所说的,我设法解决了这个问题:
test <- function(...){
bar <- unique(sampleData[,...])
foo <- subset_samples(phyloseqObject, eval(parse(bar@names)) == as.numeric(bar[1]))
print(foo)
}
test('pH')