有没有一种方法可以将其矢量化,并使其输出与b_loop相同?这是R


require(dplyr)
...
a <- data.frame(col1 = 1:10)
b_vectorize <- a %>% 
  mutate(col1 = lag(col1, 1))
b_loop <- a
for(i in 2:10){
  b_loop$col1[i] <- b_loop$col1[i-1]
}
print(a)
print(b_vectorize)
print(b_loop)

附言:我是R的新手,如果有任何帮助,我将不胜感激,谢谢!

如果您想要b_vectorizeas b_loop输出相同的,请尝试此操作

b_vectorize <- a %>% 
    mutate(col1 = c(first(col1) , diff(col1)))
  • 输出
   col1
1     1
2     1
3     1
4     1
5     1
6     1
7     1
8     1
9     1
10    1

最新更新