- up <- round(0.27*nrow(score),0)
- max <- max(score$a1)
- mean1 <- score %>% arrange(desc(a1)) %>% filter(row_number() %in% 1:up) %>% summarise(mean(a1))
- mean2 <- score %>% arrange(a1) %>% filter(row_number() %in% 1:up)%>% summarise(mean(a1))
- p1 <- mean1/max
- p2 <- mean2/max
- dcn <- p1-p2
- dcn
然后我就写了一个循环,代码如下:
- result <- data.frame(dcn=0)
- for (i in 1:57) {
- nm <- paste('a',i,sep = '')
- max <- max(score$nm)
- mean1 <- score %>% arrange(desc(nm)) %>% filter(row_number() %in% 1:up) %>% summarise(mean(nm)
- mean2 <- score %>% arrange(nm) %>% filter(row_number() %in% 1:up)%>% summarise(mean(nm))
- p1 <- mean1/max
- p2 <- mean2/max
- dcn <- p1-p2
-
- result[i,1] <- dca
- }
- result
Error in arrange_impl(.data, dots) :
incorrect size (1) at position 1, expecting : 45
In addition: Warning messages:
1: Unknown or uninitialised column: 'nm'.
2: In max(score$nm) : no non-missing arguments to max; returning -Inf
然后我问到原因可能出现在paste函数上,好像需要用get()函数才行,于是我用了如下:
name <- get(paste('a',1,sep = ''))
然后还是报错,吼!:
Error in get(paste("a", 1, sep = "")) : object 'a1' not found
各位哥哥姐姐,大佬们我该咋改啊
- score2.xlsx