有人可以提供有关从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
答案 0 :(得分: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)