我在编写脚本时遇到了一个错误,只有当我运行 dplyr
时才会出现。我第一次遇到这个错误是因为我想使用来自 dplyr
的函数,之后我安装并运行了该软件包。以下是我的错误示例:
首先,我从 Excel 中读取了一个表格,其中包含我将用作索引的列值:
library(readxl)
examplelist <- read_excel("example.xlsx")
文件的内容为:
1 2 3 4
1 1 4 1
2 3 2 1
4 4 1 4
然后我创建了一个数据框:
testdf = data.frame(1:12, 13:24, 25:36, 37:48)
然后我有一个循环,调用一个使用 examplelist
值作为索引的函数。
testfun <- function(df, a, b, c, d){
value1 <- df[[a]]
value2 <- df[[b]]
value3 <- df[[c]]
value4 <- df[[d]]
}
for (i in 1:nrow(examplelist)){
testfun(testdf, examplelist[i, 1], examplelist[i, 2],
examplelist[i, 3], examplelist[i, 4])
}
当我不使用dplyr
运行这个脚本时,一切正常,但是使用了dplyr
后,就会出现错误:
Error in .subset2(x, i, exact = exact) : invalid subscript type 'list'
为什么使用
dplyr
会导致这个错误,并且该如何解决?
dplyr
会改变examplelist[1,2]
的值(我已经进行了有和没有dplyr
的检查)。我期望当使用 [a,b] 对数据框进行子集操作时,它会简化结果(至少这是《Advanced R》告诉我的)。为什么加载dplyr
会改变这种行为,以及如何改变的呢? - Walker in the City