Shu*_*wag 2 for-loop r list dataframe
我正在尝试编写一些迭代数据帧列表的代码,向每个数据帧添加一个新列,该新列包含与旧列相同的值,但移动了 1。该列中的第一个值将为 NA。下面是我的代码:
for(dataframe in 1:length(listOfDataFrames)){
newColumn <- c(NA)
for(row in 1:(nrow(listOfDataFrames[[dataframe]]) - 1)){
newColumn <- append(newColumn, listOfDataFrames[[dataframe]]$oldColumn[row])
}
mutate(listOfDataFrames[[i]], newColumn = newColumn)
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在 R 中执行此代码时,我在第一个数据帧上收到错误:
replacement has 894 rows, data has 895
Run Code Online (Sandbox Code Playgroud)
什么可能导致此错误?抱歉,如果这是一个简单的问题,我不是 R 方面的专家。
谢谢你!
你的代码集中了在 R 中应该避免的事情:
for当您可以使用lapply或更一般的 xxapply 家庭时,请勿使用。lapply将为你做。$内部函数。你应该使用[运算符这里我将如何做到这一点:
lapply(listOfDataFrames, function(DX){
## I assume that your DX has and "oldColum" variable
transform(DX,newColumn =c(NA,head(oldColumn,-1))
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1628 次 |
| 最近记录: |