小编jes*_*ssc的帖子

如何在R的重塑包中循环dcast功能

作为一个相对较新的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)

loops r reshape lapply

3
推荐指数
1
解决办法
873
查看次数

标签 统计

lapply ×1

loops ×1

r ×1

reshape ×1