gpt4 book ai didi

r - 如何将文件的多行读入数据帧的一行

转载 作者:行者123 更新时间:2023-12-04 11:08:03 25 4
gpt4 key购买 nike

我有一个数据文件,其中单个样本由一个空行分隔,每个字段都在它自己的行上:

age 20
weight 185
height 72

age 87
weight 109
height 60

age 15
weight 109
height 58

...

如何将此文件读入数据帧,以便每一行代表一个包含年龄、体重、高度列的样本?
    age    weight    height

1 20 185 72
2 87 109 60
3 15 109 58
...

最佳答案

@user1317221_G 展示了我将采用的方法,但诉诸于加载一个额外的包并显式生成组。组(ID 变量)是获得任何 reshape 的关键。输入答案工作。矩阵答案没有这个限制。

这是基础 R 中的一种密切相关的方法:

mydf <- read.table(header = FALSE, stringsAsFactors=FALSE, 
text = "age 20
weight 185
height 72

age 87
weight 109
height 60

age 15
weight 109
height 58
")

# Create your id variable
mydf <- within(mydf, {
id <- ave(V1, V1, FUN = seq_along)
})

使用 id 变量,您的转换很容易:
reshape(mydf, direction = "wide", 
idvar = "id", timevar="V1")
# id V2.age V2.weight V2.height
# 1 1 20 185 72
# 4 2 87 109 60
# 7 3 15 109 58

或者:
# Your ids become the "rownames" with this approach
as.data.frame.matrix(xtabs(V2 ~ id + V1, mydf))
# age height weight
# 1 20 72 185
# 2 87 60 109
# 3 15 58 109

关于r - 如何将文件的多行读入数据帧的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com