如果不存在分隔符,则在R中分隔字段

Mik*_*han 2 r

我有一个如下数据集:

structure(list(Info = c("Acacia melanoceras 0.0369 0.0427 0.0267 0.0298 0.0501 0.0042 ", 
"Acalypha diversifolia van 0.0670 0.0439 0.0281 0.0427 0.0464 -0.0148 ", 
"Acalypha macrostachya vin 0.0657 0.0621 0.0441 0.0522 0.0473 -0.0173 ", 
"Adelia triloba 0.0481 0.0350 0.0202 0.0174 0.0286 -0.0349 ", 
"Aegiphila panamensis 0.0437 0.0312 0.0166 0.0148 0.0194 -0.0497 ", 
"Alchornea costaricensis 0.0568 0.0781 0.0502 0.0221 0.0734 -0.0153 "
)), .Names = "Info", row.names = c(NA, 6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

它目前只有一列,看起来像这样

                                                                   Info
1         Acacia melanoceras 0.0369 0.0427 0.0267 0.0298 0.0501 0.0042 
2 Acalypha diversifolia van 0.0670 0.0439 0.0281 0.0427 0.0464 -0.0148 
3 Acalypha macrostachya vin 0.0657 0.0621 0.0441 0.0522 0.0473 -0.0173 
4            Adelia triloba 0.0481 0.0350 0.0202 0.0174 0.0286 -0.0349 
5      Aegiphila panamensis 0.0437 0.0312 0.0166 0.0148 0.0194 -0.0497 
6   Alchornea costaricensis 0.0568 0.0781 0.0502 0.0221 0.0734 -0.0153
Run Code Online (Sandbox Code Playgroud)

我希望它有7列,看起来像这样:

           Species             V1     V2      V3     V4    V5     V6
1         Acacia melanoceras 0.0369 0.0427 0.0267 0.0298 0.0501 0.0042 
2 Acalypha diversifolia van 0.0670 0.0439 0.0281 0.0427 0.0464 -0.0148 
3 Acalypha macrostachya vin 0.0657 0.0621 0.0441 0.0522 0.0473 -0.0173 
4            Adelia triloba 0.0481 0.0350 0.0202 0.0174 0.0286 -0.0349 
5      Aegiphila panamensis 0.0437 0.0312 0.0166 0.0148 0.0194 -0.0497 
6   Alchornea costaricensis 0.0568 0.0781 0.0502 0.0221 0.0734 -0.0153
Run Code Online (Sandbox Code Playgroud)

这个问题令我感到头痛,因为物种名称并不总是两个字.原始文本文件没有分隔,因此我无法以分隔的方式读取它.我只能将其作为一个列字符串获取.有人有什么建议吗?

42-*_*42- 6

尝试使用gsub逗号在数据帧的"信息"列中的每个数字之前放置一个逗号,我们假设它被命名为"dat",然后用read.csv重新读取:

> read.csv(text=gsub("( [-[:digit:].])", ",\\1", dat$Info), header=FALSE)
                         V1     V2     V3     V4     V5     V6      V7
1        Acacia melanoceras 0.0369 0.0427 0.0267 0.0298 0.0501  0.0042
2 Acalypha diversifolia van 0.0670 0.0439 0.0281 0.0427 0.0464 -0.0148
3 Acalypha macrostachya vin 0.0657 0.0621 0.0441 0.0522 0.0473 -0.0173
4            Adelia triloba 0.0481 0.0350 0.0202 0.0174 0.0286 -0.0349
5      Aegiphila panamensis 0.0437 0.0312 0.0166 0.0148 0.0194 -0.0497
6   Alchornea costaricensis 0.0568 0.0781 0.0502 0.0221 0.0734 -0.0153
Run Code Online (Sandbox Code Playgroud)

我感谢你描述你的用例.我将来可以自己使用它.