相关疑难解决方法(0)

汇总的意外输出

这里尝试aggregate另一个问题时,我遇到了一个相当奇怪的结果.我无法弄清楚为什么,我想知道我在做什么是完全错误的.

假设,我有data.frame这样的:

df <- structure(list(V1 = c(1L, 2L, 1L, 2L, 3L, 1L), 
                     V2 = c(2L, 3L, 2L, 3L, 4L, 2L), 
                     V3 = c(3L, 4L, 3L, 4L, 5L, 3L), 
                     V4 = c(4L, 5L, 4L, 5L, 6L, 4L)), 
                  .Names = c("V1", "V2", "V3", "V4"), 
        row.names = c(NA, -6L), class = "data.frame")
> df
#   V1 V2 V3 V4
# 1  1  2  3  4
# 2  2  3  4  5
# 3  1  2  3  4 …
Run Code Online (Sandbox Code Playgroud)

aggregate r

10
推荐指数
1
解决办法
292
查看次数

删除R中向量的最大值

我有一个载体v,我想删除的向量的最大值vv.我可以发现每个值重复多少次,但是如何vvR中删除from的最大值?

v = c(0.25, 0.25, 0.3, 0.3, 0.3, 5, 6, 6.5, 8, 8, 8)
max(v)
[1] 8
j = as.numeric(unname(table(v)))
j
[1] 2 3 1 1 1 3
Run Code Online (Sandbox Code Playgroud)

另外,如果我有另一种载体a

a = rep(1, length(v))
Run Code Online (Sandbox Code Playgroud)

长度相同v,我想删除最后3个,我该怎么办?

r

1
推荐指数
2
解决办法
1万
查看次数

防止不使用选项创建data.table自动索引的简单方法(datatable.auto.index = FALSE)

我有一些像

library(data.table)  # v 1.12.3

foo <- data.table(x = sample(letters, 10^6, replace = T), y = 1)
foo[x == "a", y := 0]
indices(foo)  # x
Run Code Online (Sandbox Code Playgroud)

如您所见,索引是在column上自动创建的x。在这种情况下,我不希望创建索引。我知道我可以用类似的方法来预防

options(datatable.auto.index = FALSE)
foo[x == "a", y := 0]
options(datatable.auto.index = TRUE)
Run Code Online (Sandbox Code Playgroud)

但这似乎是糟糕的设计,因为

  1. 这是凌乱的代码
  2. 如果foo[x == "a", y := 0]出现错误,将不会重新打开自动索引

这里有更好的选择foo[x == "a", y := 0, autoindex = FALSE]吗?

另外,我想我可以允许创建索引,然后用删除它,setindex(foo, NULL)但是我担心这会增加性能成本。另外,它看起来比应该的还杂乱。

r data.table

1
推荐指数
1
解决办法
52
查看次数

标签 统计

r ×3

aggregate ×1

data.table ×1