我要循环列。该列的每个值,则在测试数据对应一列。我想找到对应列和复制拷贝到我只是做了一个新的列。后续是我做了什么。但也有语法错误,因为我不知道如何循环使用正确R.列
for (i in test$Position) {
value1 <- test[i]
index <- which(names(test)== value1)
res <- test[i,index]
test$newCoulumn [i]=res
}
test <- structure(list(cc = c(90, 94, 87, 85, 86, 80, 92, 76, 90, 81,
67), ST = c(90, 94, 87, 85, 86, 80, 92, 76, 90, 81, 67), RS = c(90,
94, 87, 85, 86, 80, 92, 76, 90, 81, 67), LW = c(94, 92, 92, 90,
92, 88, 91, 73, 86, 84, 64), LF = c(95, 93, 92, 90, 91, 87, 92,
74, 89, 85, 65), CF = c(95, 93, 92, 90, 91, 87, 92, 74, 89, 85,
65), RF = c(95, 93, 92, 90, 91, 87, 92, 74, 89, 85, 65), RW = c(94,
92, 92, 90, 92, 88, 91, 73, 86, 84, 64), Position = c("RF", "ST",
"LW", "RF", "LF", "RW", "RS", "CF", "ST", "cc", "RW")), row.names = c(NA,
-11L), class = c("tbl_df", "tbl", "data.frame"))
test
cc ST RS LW LF CF RF RW Position
90 90 90 94 95 95 95 94 RF
94 94 94 92 93 93 93 92 ST
87 87 87 92 92 92 92 92 LW
85 85 85 90 90 90 90 90 RF
86 86 86 92 91 91 91 92 LF
80 80 80 88 87 87 87 88 RW
92 92 92 91 92 92 92 91 RS
76 76 76 73 74 74 74 73 CF
90 90 90 86 89 89 89 86 ST
81 81 81 84 85 85 85 84 cc
67 67 67 64 65 65 65 64 RW
我敢肯定,必须有这样的purrr :: MAP2版本,但我想送两个向量(一个位置值的列和其他行索引)以“[”是非常简单的任务。唯一的疑难杂症似乎是必要的mapply
值不公开。我觉得可能是,会做同样的事情simplify2array说法。
test$Pos_val <- unlist(mapply(function(x,y){test[y,x]}, x=test$Position, y=1:nrow(test)))
> test
# A tibble: 11 x 10
cc ST RS LW LF CF RF RW Position Pos_val
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl>
1 90 90 90 94 95 95 95 94 RF 95
2 94 94 94 92 93 93 93 92 ST 94
3 87 87 87 92 92 92 92 92 LW 92
4 85 85 85 90 90 90 90 90 RF 90
5 86 86 86 92 91 91 91 92 LF 91
6 80 80 80 88 87 87 87 88 RW 88
7 92 92 92 91 92 92 92 91 RS 92
8 76 76 76 73 74 74 74 73 CF 74
9 90 90 90 86 89 89 89 86 ST 90
10 81 81 81 84 85 85 85 84 cc 81
11 67 67 67 64 65 65 65 64 RW 64