r - 从多个工作表中选择特定变量并在 R 中以逗号分隔的文本文件形式写入?
问题描述
我创建了myData.xlsx
工作表。我想为每个提取,和PCP
并将MinT
其写入文件。文件的名称应该是我们要为其提取数据的变量(即 G1.txt、G2.txt...等)。MaxT
variable (i.e., G1,G2..etc)
myData.xlsx
comma separated value
text
text
library(tidyverse)
library(xlsx)
set.seed(123)
MaxT <- data.frame(G1= runif(1095,-5,20), G2= runif(1095,-4,18),G3= runif(1095,-5,15))
MinT <- data.frame(G1= runif(1095,-10,10), G2= runif(1095,-8,10),G3= runif(1095,-15,10))
PCP <- data.frame(G1= runif(1095,1,5), G2= runif(1095,2,10),G3= runif(1095,0,10))
write.xlsx(MaxT, file="myData.xlsx", sheetName="MaxT", row.names=FALSE)
write.xlsx(MinT, file="myData.xlsx", sheetName="MinT", append=TRUE, row.names=FALSE)
write.xlsx(PCP, file="myData.xlsx", sheetName="PCP", append=TRUE, row.names=FALSE)
例如,输出G1.txt
应该是这样的
PCP,MinT,MaxT
0.17,-10.82,-4.71
0.21,-11.87,-2.02
0.14,-4.42,0.04
0.21,-6.9,-0.3
0.13,-8.28,-1.68
0.19,-12.5,-8.53
0.29,-11.29,-8.19
0.3,-12.87,-7.05
0.07,-11.53,-5.14
解决方案
我尝试了一种不同的方式(我认为我可以避免 for 循环)。这个想法是用你的所有数据制作一个大数据框,然后旋转它,嵌套它,最后写入 csv 文件。不确定它是否更好。
bind_rows(list(PCP = PCP, MaxT = MaxT, MinT = MinT), .id = "id") %>%
pivot_longer(!id, names_to = "names", values_to = "values") %>%
group_by(id, names) %>%
nest() %>%
unnest_wider(data) %>%
pivot_wider(names_from = id, values_from = values) %>%
unnest(cols = c(PCP, MaxT, MinT), names_repair = "universal") %>%
nest() %>%
by_row(~write.csv(.$data, file = paste(.$names, ".csv", sep = ""), row.names=FALSE, quote=FALSE))
推荐阅读
- jmeter - 使用 IntelliJ Idea 调试自定义 JMeter 插件
- scroll - 有没有办法在仪表板中制作可滚动的部分?
- json - 状态消息:无法对嵌套资源执行请求的操作。未找到父资源“VMName”。(代码:ParentResourceNotFound)
- python - 我如何使用这个 for 循环到这个 webscraping stock 模块?
- python - 如何根据一组多对模式中两个模式的共现来修剪字符串?
- sql - LIMIT 不包含变量
- python - 有没有办法检查两个对象列表是否仅包含 Python 中相同类型的对象?
- reactjs - 在聚合物中反应 JSX?这是可能的?
- python - 如何使用作为列表的数据框值
- saml - 使用 GSuite Google Workspace 配置 SCIM 用户配置