r - 在 R 中转换为 lapply - 带有附加 tibble 的 for 循环
问题描述
我试图通过首先将循环转换为 lapply 来并行化这个 for 循环。
sent 是一个大约 20,000,000 行的 tibble
for 循环使用索引 i 遍历已发送的每一行。如果满足两个条件,则将 31 行(从 i-15 到 i+15)切片并附加到另一个 tibble(femaleWindow 或 maleWindow)。
您对如何将其转换为 lapply/并行化 for 循环以节省时间有任何提示吗?
for (i in seq_len(nrow(sent)))
{
if(i>15){h=i-15} else{h=1}
j=i+15
cut <- slice(sent,i)
if (cut[1,5]=="yes")
{
window <- slice(sent, h:j)
leadcut <- window %>% filter(leader=="yes")
x = fleadcut[1,4] %>% replace_na(list(leader="none"))
if(x =="yes")
{
femaleWindow <- bind_rows(femaleWindow, window)
}
} else if (cut[1,5]=="no")
{
window <- slice(sent, h:j)
leadcut <- window %>% filter(leader=="yes")
x = leadcut[1,4] %>% replace_na(list(leader="none"))
if(x =="yes")
{
maleWindow <- bind_rows(maleWindow, window)
}
} else{print(i)}
}
谢谢!
解决方案
推荐阅读
- unity3d-editor - 统一隐藏对象而不改变它们的状态
- php - 在php/mysql中生成临时登录
- ios - 如何在 iOS swift 项目中删除部分 pod 文件?
- sql - 从 Postgres JSONB 字段中选择缺失值
- c# - 多次运行函数时无法访问已处置的对象
- python - python eve - 删除上的 data_relation - 如果引用则保留/错误
- file - 如何从flutter中的存储中获取所有特定类型的文件
- matlab - 使用 textread 读取带有文本的 CSV 文件
- git - webhook 是否触发源/开发或开发分支的管道
- npm - npm,避免在不使用 .npmignore 的情况下发布 src 目录