除了非常基本的转换之外,我很少有转换txt数据的经验,我已经尝试了大约一个小时使用Excel power查询和Tidyverse在R.
我有一个txt文件,格式如下,下面的示例显示了三个植被调查地块的数据,尽管我的实际数据超过1600块:
Plot 1
CVS: class 49
ELL: No data for 2 species: Betula seedling/sp; Quercus seedling/sp
ELL: Light 5.6; Wetness 5.5; pH 3.9; Fertility 4.2
CSR: 2 species with no data: Betula seedling/sp; Pinus sylvestris
CSR: C: 2.89 S: 2.35 R: 2.33
BIO: 2 species with no data: Betula seedling/sp; Quercus seedling/sp
BIO: Eurasian Boreal-montane 14%
BIO: Eurosiberian Boreo-temperate 14%
BIO: Oceanic Temperate 14%
BIO: European Temperate 14%
BIO: Eurosiberian Temperate 14%
BIO: Circumpolar Temperate 14%
BIO: European Southern-temperate 14%
Plot 2
CVS: class 42
ELL: No data for 2 species: Betula seedling/sp; Quercus seedling/sp
ELL: Light 5.2; Wetness 5.2; pH 4.9; Fertility 5.4
CSR: 2 species with no data: Betula seedling/sp; Tilia [spp]
CSR: C: 2.36 S: 2.79 R: 2.75
BIO: 3 species with no data: Betula seedling/sp; Quercus seedling/sp; Tilia [spp]
BIO: Oceanic Temperate 25%
BIO: European Temperate 50%
BIO: Eurosiberian Temperate 25%
Plot 3
CVS: class 42
ELL: No data for 1 species: Quercus seedling/sp
ELL: Light 4.9; Wetness 5.2; pH 5.9; Fertility 5.5
CSR: C: 2.74 S: 3.25 R: 2.49
BIO: 2 species with no data: Acer pseudoplatanus; Quercus seedling/sp
BIO: Circumpolar Wide-boreal 11%
BIO: Circumpolar Boreo-temperate 11%
BIO: Eurosiberian Wide-temperate 11%
BIO: European Temperate 22%
BIO: Eurosiberian Temperate 11%
BIO: Circumpolar Temperate 11%
BIO: European Southern-temperate 22%实际上,我不需要保存这些数据,我需要在前两行以及第5/6行(CSR)中保留和转换信息,我需要的是以下格式的表:
PLOT CVS C S R
1 49 2.89 2.35 2.33
2 42 2.36 2.79 2.75
3 42 2.74 3.25 2.49 从现有的txt格式可以做到这一点吗?可悲的是,我在这个问题上毫无头绪,再多的谷歌搜索似乎也没有帮助。所有的想法都很感激。
发布于 2022-06-15 18:35:55
总是放在第一位置的,CVS: class nn在第二位置的和CSR: C: nn.等等,总是排在第六位的。
因为在这种情况下,我想我有一些Excel公式可以帮助您获得这样的结果:
公式如下( B6细胞中的起始蛋白):
B栏:=CLEAN(IF(ISNUMBER(SEARCH("Plot";A1));MID(A1;6;10);""))
C列:=CLEAN(ISNUMBER(搜索(“CVS: class”;A2));MID(A2;12;10);“”)
D栏:=CLEAN(ISNUMBER(搜索(“CSR: C:”;A2));MID(A6;9;5);“”)
E栏:=CLEAN(ISNUMBER(搜索(“CSR: C:”;A2));MID(A6;18;5);“”)
F栏:=CLEAN(ISNUMBER(搜索(“CSR: C:”;A2));MID(A6;27;5);“”)
正如您在图像中所看到的,当txt中少一行时,excel中的数据显示得并不完美。这就是我的第一个问题。
希望它能帮到你。
https://stackoverflow.com/questions/72633900
复制相似问题