作为一个相对较新的R用户,我在使用任何循环功能时都遇到麻烦。我看过很多教程,但是其中的示例通常非常基础,因此易于执行。但是,我需要创建稍微复杂一些的循环,并且在弄清楚如何做时遇到很多麻烦。在这里和其他论坛上有一些相关的循环问题,但没有一个完全符合我的需求,尽管我尝试为当前问题改编其他答案,但我仍然遇到错误。
我有2000个.csv文件,其数据以长格式数据制成表格(简化示例):
solution1
> sol1 sol2 Istat
> s1 s2 0.435
> s1 s3 0.456
> s1 s4 0.845
> s1 s5 0.234
Run Code Online (Sandbox Code Playgroud)
它基本上是我对2000个单个解决方案的成对比较的摘要,并以“ Istat”值概括了两个解决方案之间的相似性。
我正在尝试将这2000个.csv文件中的每个文件广播到宽格式表中(使用R中的reshape包),以使它们看起来像下面的示例:
s1 s2 s3 s4 s5
s1 NA 0.435 0.456 0.845 0.234
Run Code Online (Sandbox Code Playgroud)
我知道如何只用一个.csv文件执行一次:
stat.cast <- dcast(solution1, sol2 ~ sol1, value.var="Istat")
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法将其处理成一个for循环函数,甚至lapply无法使用,这似乎也可以在这里解决。
我最接近的for功能:
# Get files from directory
loopout = "/Users/jc219806/Documents/Chapter 1/ANALYSES/R work/Istat/last_LoopOut/"
# List of file names inside folder
solutions <- list.files(loopout)
# Read all 2000 files inside
all.data …Run Code Online (Sandbox Code Playgroud)