r - 将文本文件读取为格式化列表
问题描述
我想将一个文本文件作为列表导入 R,但不知道如何告诉 R 所需的格式。源列表为txt文件,格式如下:
Column1=a
Date=21.01.2020
Column2=1|2|3
Subtable_Column1=a|2|3
Subtable_Column2=c|d|e
[2]
Column1=b
Date=21.02.2020
Column2=1|2|4
Subtable_Column1=a|2|3
Subtable_Column2=c|d|e
Subtable_Column3=c|d|e
最后,每个都[n]
应该是包含命名向量的列表索引(例如第 1 列、日期等)
。这在 R 中怎么可能?
谢谢你的帮助!
解决方案
这是一种预先格式化数据的方法。
变量数据
Column1=a
Date=21.01.2020
Column2=1|2|3
Subtable_Column1=a|2|3
Subtable_Column2=c|d|e
[2]
Column1=b
Date=21.02.2020
Column2=1|2|4
Subtable_Column1=a|2|3
Subtable_Column2=c|d|e
Subtable_Column3=c|d|e
它将每个数据集放入数据框的一行中:
awk -F '=' 'BEGIN{i=1}
!NF{i++; j=0; next}
/=/{ j++; cname[0,j]=$1; content[i,j]=$2; rows=i; cols[i]++ }
END{ m=0; for(k in cols){ if(cols[k]>m){ m=cols[k] } };
for(j=1;j<m;j++){ printf("%s,",cname[0,j]) }; print cname[0,m];
for(i=1;i<=rows;i++){
for(j=1;j<m;j++){
printf("%s,",content[i,j]) } print content[i,m] } }' varval.dat > varval.csv
回复:
a <- read.csv("varval.csv", na.strings="")
# Column1 Date Column2 Subtable_Column1 Subtable_Column2 Subtable_Column3
# 1 a 21.01.2020 1|2|3 a|2|3 c|d|e <NA>
# 2 b 21.02.2020 1|2|4 a|2|3 c|d|e c|d|e
我敢肯定这不是您想要的,但可以作为一个起点。
推荐阅读
- c# - 获取代码中的版本号.Net Core 3 WPF Sideload
- python-2.x - 关于如何更新刽子手游戏字符串的更好主意
- python-3.x - 使用python从json中获取价值
- python - 在 Python 中使用 Dask 并行运行函数
- python - 如何从流量计中获取数据并在我的 python 代码中使用它?
- angular - Angular 8 不会等到新值呈现在视图上
- elasticsearch - 使用 Logstash 批量创建和批量更新 ElasticSearch 索引文档
- c++ - c++:静态链接同一个库的不同版本?
- pandas - 替换字符串中不全是字母的短语 Pandas
- powershell - 从 EC2 usedata 启动 Exe 并让它在桌面上运行