这个问题是我上一个问题的后续问题,将一长行数据导入到 R 中 https://stackoverflow.com/questions/8389913.
我有一个由单行文本组成的大型数据文件。格式类似于
Cat 14 15 Horse 16
我最终想将其放入 data.frame 中。在上面的例子中,我最终会得到两个变量,两个变量,动物和数字。每“行”中的字符数是固定的,因此在上面的示例中,每行包含 11 个字符,动物是前 7 个字符,数字是接下来的 4 个字符。
所以我想要的是一个看起来像这样的数据框:
Animal Number
Cat 14
NA 15
Horse 16
您可以使用以下命令读取该文件read.fwf
,指定列宽和列数:
inp.fwf <- read.fwf("tmp.txt", widths = rep(c(7, 4), times = 3), as.is = TRUE)
这里的论点times = 3
适用于您的样本数据;对于您的真实文件,您必须指出有多少对并进行更改times
因此。如果您不知道有多少条目,这可能有效:
inp.rl <- readLines("tmp.txt")
nchar(inp.rl)/11
这将为您提供一个包含一行和多列的 data.frame。您需要将其分成多行和两列:
inp.mat <- matrix(inp.fwf, byrow = TRUE, ncol = 2)
这将为您提供正确的数据形状。动物名称存储为字符向量,您可能希望将其更改为因子,但此时所有数据都在 R 中,因此您可以轻松调整它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)