【发布时间】:2017-11-28 11:22:15
【问题描述】:
我正在尝试构建一个包含矢量操作的自定义函数。该功能在手动输入路径和数据名称后运行良好。每个文档都是一个 .txt 文件,其中仅包含一列中的数字。 但是文件夹中有大量文件,我的问题是如何在每个 .txt 文件中循环我的函数?
我已尝试使用此代码,但没有完成任何操作。
filenames <- list.files(path=("/folder/"), pattern=".txt")
ldf <- lapply(filenames, read.table)
lapply(ldf, sumfun)
这是代码的简化版本
dataframe <- read.table('folder/dataframe.txt')
sumfun <- function(a){
x <- dataframe[1:length(dataframe)-1]
y <- dataframe[-1]
dx <- y-x
SUM1 <- sum(dx[which(dx>1)]))^2
SUM2 <- sum(dx[which(dx<1)]))^2
SUMtot <- SUM1 + SUM2
return(SUMtot)
}
sumfun(dataframe)
据我了解,问题可能出在 x 和 y 向量操作上?
【问题讨论】:
-
您是否尝试过使用“应用”功能?我还建议您插入打印语句并检查下面发生的情况。
-
您需要将函数中的
dataframe替换为a,例如x <- a[1:length(a)-1]。现在你没有在函数中使用你的输入变量。
标签: r