gpt4 book ai didi

r - 如何使用 R 动态地将值插入数据框中

转载 作者:行者123 更新时间:2023-12-01 07:51:58 25 4
gpt4 key购买 nike

从网站上抓取一些评论数据后,我很难将数据组织成有用的结构进行分析。问题在于数据是动态的,因为每个评论者都会对 0 到 3 个子类别(表示为子类别“a”、“b”和“c”)之间的任何地方进行评分。我想组织评论,以便每一行都是不同的评论者,每一列是一个被评分的子类别。如果评论者选择不对子类别进行评分,我希望缺失的数据为“NA”。以下是数据的简化示例:

vec <- c("a","b","c","stop", "a","b","stop", "stop", "c","stop")
ratings <- c(2,5,1, 1,3, 2)

vec 包含评分的子类别的信息,“停止”是每个评论者评分的结束。因此,我想将结果组织到具有这种结构的数据框中。预期产出

enter image description here

我将不胜感激这方面的任何帮助,因为我一直在处理这个问题的时间比我应该花的时间要长得多。

最佳答案

@alexis_laz 提供了我认为最好的答案:

vec <- c("a","b","c","stop", "a","b","stop", "stop", "c","stop")
ratings <- c(2,5,1, 1,3, 2)

stops <- vec == "stop"
i = cumsum(stops)[!stops] + 1L
j = vec[!stops]
tapply(ratings, list(factor(i, 1:max(i)), factor(j)), identity) # although mean/sum work
# a b c
#[1,] 2 5 1
#[2,] 1 3 NA
#[3,] NA NA NA
#[4,] NA NA 2

关于r - 如何使用 R 动态地将值插入数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45334252/

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