首页 文章

从另一个向量创建表列

提问于
浏览
0

有人可以提供有关从R中的另一个向量创建新表列的建议吗?

我有一个名为“main”的表,包含测试类型和测试次数 . 我想创建一个新列来分配测试值 .

Test Type    Number of Tests    Test Value
    a               1               
    b               4   
    c               3
    d               2

测试值以另一个向量x < - (0.1,0.2,0.2,0.3,0.2,0.6,0.5,0.6,1.2,1.3)的顺序存储 . 向量中的测试值总数等于执行的测试总数 .

相应测试类型的测试值等于多个测试的值的平均值 . 例如,测试类型为0.1,测试b类型为(0.2 0.2 0.3 0.2)/ 4,测试c类型为(0.6 0.5 0.6)/ 3,测试d类型为(1.2 1.3)/ 2 .

以下是我的代码:

idx_low <- 1
number_vector <- numeric()
for (value in main[[2]]) {
    idx_high <- idx_low+value-1
    number <- mean(x[idx_low:idx_high])
    number_vector <- c(number_vector, number)
    idx_low <- idx_high+1
}
main[[3]] <- number_vector

1 回答

  • 0

    这个怎么样:

    library("dplyr")
    main = data.frame(test_type = letters[1:4],
                      num_tests = c(1,4,3,2),
                      stringsAsFactors = FALSE)
    test_scores = c(0.1, 0.2, 0.2, 0.3, 0.2, 0.6, 0.5, 0.6, 1.2, 1.3)
    labels = c()
    for(i in 1:nrow(main)){
      labels = c(labels, rep(x = main$test_type[i], times = main$num_tests[i] ))
    }
    
    test_scores = data.frame(scores = test_scores,
                             test_type = labels) %>% 
      group_by(test_type) %>% 
      summarise(avg_score = mean(scores)) %>% 
      right_join(main)
    

相关问题