【发布时间】:2020-05-14 14:55:52
【问题描述】:
假设我们有一个这样的数据框
DataFrame ref = DataFrame::create( Named("sender") = sender , Named("receiver") = receiver);
对应的R代码如下:
edge <- as.data.frame(edge) %>%
set_colnames(c("time", "sender", "receiver"))
edge <- rbind(c(0,0,0), edge)
ref <- data.frame(sender = rep(1:n, times = n),
receiver = rep(1:n, each = n)
) %>%
filter(sender != receiver) %>%
mutate(teller = 1:(n*(n-1)))
此数据框中的某些行具有相同的元素,例如 2 2,我想找到它们并将它们从数据框中删除。然后我想在这个数据框中添加另一列,就像从 1 到新数据框的行数的数字。
例子:
【问题讨论】:
-
欢迎来到 StackOverflow。听起来你想学习
data.table。您可能无需学习或编写编译代码即可获得相同的性能。此外,模拟数据集和示例输出(可能是较慢的 R 代码?)将使您的问题更强大,并可能吸引更好的答案。 -
@Mori 我想
ref这里是示例数据集,但是 Dirk Eddelbuettel 提到的一些非常有用但仍然没有出现的内容是示例 output。您想要执行的操作并不完全清楚(至少对我而言),但如果您显示您希望从模拟数据集中获得的输出,可能会更清楚。 -
@DirkEddelbuettel 谢谢。我编辑了问题并按照您的建议添加了一个数字示例。现在请看是否清楚您可以给我更具体的答案。
-
在我看来,当您的任务是对数据框的行进行子集化时,您非常不太可能使用
Rcpp击败基本 R 或data.table之类的东西.在很多情况下,您可以使用Rcpp获得更好的性能,但我认为这不是其中之一。 -
@Mori:您“没有添加示例”。您添加了指向图像的链接。简而言之:“不要那样做。”。 StackOverflow 更喜欢一个您可能会在您访问的其他帖子中看到的实际示例。