R 复制数据后使用apply而不是loop
我正在使用以下代码:R 复制数据后使用apply而不是loop,r,R,我正在使用以下代码: df1 <- data.frame( x1 = 'a' , x2 = 'b' , y = 0 ) df1 <- do.call("rbind", replicate(10, df1, simplify = FALSE)) for (row in 1:nrow(df1)) { df1[row,]$y = (row - 1) } df1 df1这个解决方案怎么样 df1 <- data.frame(
df1 <- data.frame(
x1 = 'a'
, x2 = 'b'
, y = 0
)
df1 <- do.call("rbind", replicate(10, df1, simplify = FALSE))
for (row in 1:nrow(df1)) {
df1[row,]$y = (row - 1)
}
df1
df1这个解决方案怎么样
df1 <- data.frame(
x1 = 'a'
, x2 = 'b'
, y = 0
)
df1 <- do.call("rbind", replicate(10, df1, simplify = FALSE))
df1$y <- sapply(1:nrow(df1), function(i)as.numeric(row.names(df1))[i]-1)
df1只是df1$y或2:nrow(df1)
。好的,谢谢大家-也许可以写一个答案?谢谢。顺便说一句-apply
函数是循环的。我的观点是,您似乎有一种(常见的)误解,即apply不是循环。此外,re。例如,请参阅performance,而不需要sapply
(这是一个隐藏循环)。矢量化解决方案可用。见@utubun的上述评论。