这是一个带有四列数值和一列列名的表格。
期望的结果是计算列R,使得:
对于第一行,结果是列D中的第一个值(D是列NC中第一行的值)
对于第二行,结果是列A中的第二个值(A是列NC中第二行的值)
以此类推,对于示例中的所有行。
我尝试了很多不同的方法,无法在这里总结。 如何正确计算列R?
我尝试了很多不同的方法,这里无法总结它们。 如何正确计算列R?
我确实有一个解决方案,但它使用了一个for循环,我希望不使用它。以下是提供解决方案的代码:
这个解决方案可能会比较慢。有没有可能做得更好一些?
我尝试了很多不同的方法,无法在这里总结。 如何正确计算列R?
A | B | C | D | NC| R
9 | 5 | 5 | 10 | D | 10
4 | 10 | 5 | 6 | A | 4
set.seed(1)
example <- data.frame(U = seq(10))
example %>% mutate(A = sample(10,10,replace = TRUE), B = sample(10,10,replace = TRUE), C = sample(10,10,replace = TRUE), D= sample(10,10,replace = TRUE),NC = sample(c("A","B","C","D"),10,replace = TRUE) ) %>% select(A,B,C,D, NC) -> example
我尝试了很多不同的方法,这里无法总结它们。 如何正确计算列R?
我确实有一个解决方案,但它使用了一个for循环,我希望不使用它。以下是提供解决方案的代码:
for(i in 1:dim(example)[1]) { example$R[i] <- example[[example$NC[i]]][i] }
这个解决方案可能会比较慢。有没有可能做得更好一些?