在R中的函数内保存
我在R中创建了这个函数,但是应该保存在目录中的输出不是预期的。 当我打印I变量时,它的值总是1,所以我保存的文件名总是向量第一个位置上的文件名在R中的函数内保存,r,save,R,Save,我在R中创建了这个函数,但是应该保存在目录中的输出不是预期的。 当我打印I变量时,它的值总是1,所以我保存的文件名总是向量第一个位置上的文件名 function_filtering <- function(x){ upname <- c("up_toptable_alk.Rda", "up_toptable_kcbc1.Rda", "up_toptable_kwt.Rda", "up_toptable_NaHog1.Rda", "up_toptable_Nawt.Rda","u
function_filtering <- function(x){
upname <- c("up_toptable_alk.Rda", "up_toptable_kcbc1.Rda", "up_toptable_kwt.Rda", "up_toptable_NaHog1.Rda", "up_toptable_Nawt.Rda","up_toptable_ox.Rda", "up_toptable_ter.Rda", "up_toptable_ypd.Rda")
downname <- c("down_toptable_alk.Rda", "down_toptable_kcbc1.Rda", "down_toptable_kwt.Rda", "down_toptable_NaHog1.Rda", "down_toptable_Nawt.Rda", "down_toptable_ox.Rda", "down_toptable_ter.Rda", "down_toptable_ypd.Rda")
p.value.cut <- which(x$P.Value < 0.05)
x <- x[p.value.cut,]
up <- which(x$t > 0)
down <- which(x$t < 0)
up.p.value <- x[up,]
down.p.value <- x[down,]
save(up.p.value, file = upname[i])
save(down.p.value, file = downname[i])
i <- i + 1
print(i)
}
lapply(data, function_filtering)
function\u filtering没有可复制的示例,我无法解决您的确切问题。但我认为这就是你的目标
data <- c('a', 'b', 'c', 'd')
toy <- function(x, d) {
# x is the integer from seq_along
# d is the data you want to subset
paste(x, d[x], sep='_')
}
# Then use lapply to run the function on each element of data
# extra arguments can be passed in at the end
lapply(seq_along(data), toy, d=data)
我看不到您最初在函数中分配I
的位置。您是否希望数据中的每个对象都有不同的i
值?如果是这样的话,您可能希望查看seq_along(data)
,并将数据对象作为另一个参数传递给您的函数。它应该位于函数的开头。我没有把它放在这里,但它在原始代码上。i=1问题是i
仅在本地更改为功能功能\u过滤
,因此分配i
[[1]]
[1] "1_a"
[[2]]
[1] "2_b"
[[3]]
[1] "3_c"
[[4]]
[1] "4_d"