假设我已经将一个 csv 文件加载到 R 中,其中包含两列(例如 A 列和 B 列),其中包含实际值条目。调用数据框 df。是否可以加快以下代码的速度:
dfm <- df[floor(A) = x & floor(B) = y,]
x <- 2
y <- 2
dfm
我希望会有类似于功能的东西,例如
dfm <- function(x,y) {df[floor(A) = x & floor(B) = y,]}
这样我就可以输入
非常感谢任何帮助。
假设我已经将一个 csv 文件加载到 R 中,其中包含两列(例如 A 列和 B 列),其中包含实际值条目。调用数据框 df。是否可以加快以下代码的速度:
dfm <- df[floor(A) = x & floor(B) = y,]
x <- 2
y <- 2
dfm
我希望会有类似于功能的东西,例如
dfm <- function(x,y) {df[floor(A) = x & floor(B) = y,]}
这样我就可以输入
非常感谢任何帮助。
由于以下几个原因,现在编写的方式不起作用:
x
和y
之前分配值dfm
。换句话说,行x <- 2
和y <- 2
必须dfm <- ...
在行之前。R
不知道什么A
和B
是,即使您将它们放在包含它们的数据框的括号内。你需要写df$A
和df$B
。=
是赋值运算符,但您正在寻找逻辑运算符==
。现在您的代码正在说“将值 x 分配给floor(A)
”(这实际上没有意义)。您想告诉它“仅选择floor(A)
等于 x 的行”,或者floor(A)==x
.所以你想要的是:
dfm.create <- function(x,y) {df[floor(df$A)==x & floor(df$B)==y,]}
dfm <- dfm.create(2,2)
请注意,如果您希望调用数据框dfm
,则不想命名该函数dfm
,否则您将不得不删除该函数以制作数据框。