我正在使用 R。使用教程,我能够创建一个统计模型并为一些输出生成可视化图:
#load libraries
library(survival)
library(dplyr)
library(ranger)
library(data.table)
library(ggplot2)
#use the built in "lung" data set
#remove missing values (dataset is called "a")
a <- na.omit(lung)
#create id variable
a$ID <- seq_along(a[,1])
#create test set with only the first 3 rows
new <- a[1:3,]
#create a training set by removing first three rows
a <- a[-c(1:3),]
#fit survival model (random survival forest)
r_fit <- ranger(Surv(time,status) ~ age + sex + ph.ecog + ph.karno + pat.karno + meal.cal + …Run Code Online (Sandbox Code Playgroud) 我正在尝试提出一种简洁/快速的方法来将由换行符 ( \n) 字符分隔的文件读取到多个列中。
本质上,在给定的输入文件中,输入文件中的多行应该成为输出中的单行,但是大多数文件读取功能明智地将换行符解释为表示新行,因此它们最终作为一个数据框柱子。下面是一个例子:
输入文件如下所示:
Header Info
2021-01-01
text
...
@
2021-01-02
text
...
@
...
Run Code Online (Sandbox Code Playgroud)
其中...表示输入文件中的潜在多行,并且@表示输出数据帧中真正应该是一行的结尾。所以在读取这个文件时,它应该变成这样的数据框(忽略标题):
| X1 | X2 | ... | Xn |
|---|---|---|---|
| 2021-01-01 | 文本 | ... | ... |
| 2021-01-02 | 文本 | ... | ... |
| ... | ... | ... | ... |
我试过base、data.table、readr和vroom,它们都有两个输出之一,一个是单列的数据框,一个是向量。我想避免 for 循环,因此我当前的解决方案是使用base::readLines(), 将其作为字符向量读取,然后手动添加一些“正确”的列分隔符(例如;),然后再次加入和拆分。
Header Info
2021-01-01
text
...
@
2021-01-02
text
...
@
...
Run Code Online (Sandbox Code Playgroud)
我上面的代码有效并给出了想要的结果,但肯定有更好的方法吗?? 编辑:这是一个函数的内部,因此任何简化的部分(可能是更大的部分)是为了提高速度。
提前致谢!