Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何做“双倍”;for loop";(第一个用于文件,第二个用于文件中的数据)在R中_R_For Loop - Fatal编程技术网

如何做“双倍”;for loop";(第一个用于文件,第二个用于文件中的数据)在R中

如何做“双倍”;for loop";(第一个用于文件,第二个用于文件中的数据)在R中,r,for-loop,R,For Loop,我刚从R开始,我是一个自学成才的人,我的循环有问题。 我一直在寻找答案,但哪儿都找不到 我有很多不同名称的文件,而且我在一个文件中有很多数据。 我为一个文件做了一个循环,效果很好——就像这样(但它有更多的计算): 12bielawica9.txt看起来像 NA NA NA 0.002 0.002 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.008 0.006 NA NA NA

我刚从R开始,我是一个自学成才的人,我的循环有问题。 我一直在寻找答案,但哪儿都找不到

我有很多不同名称的文件,而且我在一个文件中有很多数据。 我为一个文件做了一个循环,效果很好——就像这样(但它有更多的计算):

12bielawica9.txt看起来像

NA  NA  NA  0.002   0.002   NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
NA  NA  NA  0.008   0.006   NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
但它要大得多

它包含研究结果,这就是为什么有很多NAs。 有时,它看起来与搜索不同……(NAs较少) 我也用R写过

dane = dane = read.table("12bielawica9.txt", header=T)

for (i in dane) {
    x = sd(i, na.rm=T)
    y = length (na.omit(i))
    if (y == 0) {
        cat(file="12bielawica9.txt", append=T, (paste("-","\t")))
    } else if (x == "0") {
        cat(file="12bielawica9.txt", append=T, paste(format(mean(i, na.rm=T) - mean(i, na.rm=T), digits=5), "\t"))
    } else {
        cat(file="12bielawica9.txt", append=T, paste(format(t.test(na.omit(i), conf.level=0.90)$conf.int - mean(i, na.rm=T), digits=5), "\t"))
    }
}
首先,我想为所有文件创建一个循环,但是当我创建一个循环时,我想:

myfiles <- list.files(pattern=".*txt")
for (j in 1:length(myfiles)) {
    for (i in myfiles[j]) {
        #LOOP FROM ABOVE
    }
}

myfiles很接近了。在您的问题中,在文件中读取第一个(内部)循环之前要做的事情

dane = read.table("12bielawica9.txt", header=T)
然后你的循环引用了这个(
(我在丹麦)
)。在外循环中包装内容时,仍然需要阅读:

myfiles <- list.files(pattern=".*txt")

for (j in 1:length(myfiles)) {
    this_file <- read.table(myfiles[j], header = T)
    for (i in this_file) {
        #LOOP FROM ABOVE
    }
}

myfiles很接近了。在您的问题中,在文件中读取第一个(内部)循环之前要做的事情

dane = read.table("12bielawica9.txt", header=T)
然后你的循环引用了这个(
(我在丹麦)
)。在外循环中包装内容时,仍然需要阅读:

myfiles <- list.files(pattern=".*txt")

for (j in 1:length(myfiles)) {
    this_file <- read.table(myfiles[j], header = T)
    for (i in this_file) {
        #LOOP FROM ABOVE
    }
}

myfiles我这样说不是为了严格,而是为了确保我知道你的意思:请用一个可复制的例子重新创建这个问题。现在,循环的行为将取决于
dane
中的内容以及
list.files
返回的内容。这里对可复制示例进行了解释:您知道可以将for循环放入for循环中,对吗?您是否更改了
cat()
中的
file=“12bielawica9.txt”
参数?另外,您需要类似于(i in read.table(myfiles[j],header=T))的
来代替(i in myfiles[j])
。也许你应该发布实际使用的代码和你想要实现的模板truth@Ferdinand.kraft-第一个循环运行良好,但仅适用于这一个文件。然而,我想把我的计算扩展到更多的文件上,这就是为什么我不能使用我说这个不是为了严格,而是为了确保我知道你的意思:请用一个可复制的例子重新创建这个问题。现在,循环的行为将取决于
dane
中的内容以及
list.files
返回的内容。这里对可复制示例进行了解释:您知道可以将for循环放入for循环中,对吗?您是否更改了
cat()
中的
file=“12bielawica9.txt”
参数?另外,您需要类似于(i in read.table(myfiles[j],header=T))的
来代替(i in myfiles[j])
。也许你应该发布实际使用的代码和你想要实现的模板truth@Ferdinand.kraft-第一个循环运行良好,但仅适用于这一个文件。然而,我想在更多的文件上扩展我的计算,这就是为什么我想我不能使用“谢谢你”这么多!第一部分很精彩。它起作用了,我很高兴!第二部分不完全一样——因为我想以一种可能的方式编写循环,即创建新文件(可能在另一个目录中)——称为相同的文件(或在同一个目录中——非常相似)——以了解哪些结果来自哪些文件。但最重要的是谢谢你的回答——我试着回答了一个星期。非常感谢!第一部分很精彩。它起作用了,我很高兴!第二部分不完全一样——因为我想以一种可能的方式编写循环,即创建新文件(可能在另一个目录中)——称为相同的文件(或在同一个目录中——非常相似)——以了解哪些结果来自哪些文件。但最重要的是谢谢你的回答——我花了一个星期的时间试图回答这个问题。