小编Ame*_*eya的帖子

R中的data.table - 使用多个键的多个过滤器 - 二进制搜索

我不明白我如何根据多个键进行过滤data.table.采用内置mtcars数据集.

DT <- data.table(mtcars)
setkey(DT, am, gear, carb)
Run Code Online (Sandbox Code Playgroud)

小插图之后,我知道如果我想要过滤相应的am == 1 & gear == 4 & carb == 4,我可以说

> DT[.(1, 4, 4)]
   mpg cyl disp  hp drat    wt  qsec vs am gear carb
1:  21   6  160 110  3.9 2.620 16.46  0  1    4    4
2:  21   6  160 110  3.9 2.875 17.02  0  1    4    4
Run Code Online (Sandbox Code Playgroud)

它给出了正确的结果.此外,如果我想拥有am == 1 & gear == 4 & (carb == 4 | carb …

r data.table

15
推荐指数
2
解决办法
9240
查看次数

为什么正常样本的直方图在模式附近比在尾部附近更粗糙?

我试图了解从中生成的样本的直方图的特定行为rnorm.

set.seed(1)
x1 <- rnorm(1000L)
x2 <- rnorm(10000L)
x3 <- rnorm(100000L)
x4 <- rnorm(1000000L)

plot.hist <- function(vec, title, brks) {
  h <- hist(vec, breaks = brks, density = 10,
            col = "lightgray", main = title) 
  xfit <- seq(min(vec), max(vec), length = 40) 
  yfit <- dnorm(xfit, mean = mean(vec), sd = sd(vec)) 
  yfit <- yfit * diff(h$mids[1:2]) * length(vec) 
  return(lines(xfit, yfit, col = "black", lwd = 2))
}

par(mfrow = c(2, 2))
plot.hist(x1, title = 'Sample = 1E3', brks …
Run Code Online (Sandbox Code Playgroud)

statistics r normal-distribution

5
推荐指数
2
解决办法
122
查看次数

R - 强制绘制缺失值

我想绘制多个图,所有图都具有相同的 X 轴。

其中一个图在开始时有一些缺失值(根据定义,就像移动平均数据一样)。

为了便于比较,我希望所有图的 X 轴起点都相同。

这是一个可重现的示例 -

library(plotly)
plotdata <- data.frame(Month=as.POSIXct(c(1309435200, 1312113600, 1314792000, 1317380400, 1320058800, 
                                     1322650800, 1325329200, 1328007600, 1330513200, 1333191600, 1335787200, 
                                     1338465600, 1341057600, 1343736000, 1346414400, 1349002800, 1351681200, 
                                     1354273200, 1356951600, 1359630000, 1362049200, 1364727600, 1367323200, 
                                     1370001600, 1372593600, 1375272000, 1377950400, 1380538800, 1383217200, 
                                     1385809200, 1388487600, 1391166000, 1393585200, 1396263600, 1398859200, 
                                     1401537600, 1404129600, 1406808000, 1409486400, 1412074800, 1414753200, 
                                     1417345200, 1420023600, 1422702000, 1425121200, 1427799600, 1430395200, 
                                     1433073600, 1435665600, 1438344000, 1441022400, 1443610800, 1446289200, 
                                     1448881200, 1451559600, 1454238000, 1456743600, 1459422000, 1462017600, 
                                     1464696000, 1467288000, 1469966400, 1472644800, 1475233200, 1477911600, 
                                     1480503600, 1483182000, 1485860400, …
Run Code Online (Sandbox Code Playgroud)

r plotly

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

将儒略日期转换为日历日期

首先,一个可重现的例子。我正在使用 data.table 因为我正在处理大约 2000 万行 -

> require(data.table)

> x <- structure(list(DoM = c(2011241L, 2015359L, 2016352L, 2015360L, 
2015287L, 2014038L, 2017066L, 2012227L, 2015041L, 2015295L), 
Year = c(2011L, 2015L, 2016L, 2015L, 2015L, 2014L, 2017L, 
2012L, 2015L, 2015L), Month = c(8L, 12L, 12L, 12L, 10L, 2L, 
3L, 8L, 2L, 10L)), .Names = c("DoM", "Year", "Month"), row.names = c(NA, 
-10L), class = c("data.table", "data.frame"))

> x
        DoM Year Month
 1: 2011241 2011     8
 2: 2015359 2015    12
 3: 2016352 2016    12
 4: 2015360 2015 …
Run Code Online (Sandbox Code Playgroud)

performance r data.table

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

ave vs tapply。unique(ave)==tapply 总是吗?如果是这样,为什么其中之一存在?

考虑以下 -

set.seed(1)
x <- runif(100)
y <- sample(c('M', 'F', 'D'), 100, TRUE)
aveResult <- ave(x = x, y, FUN = sum)
tapplyResult <- tapply(x, y, sum)
aveResult <- setNames(aveResult, y)
tapplyResult
aveResult[!duplicated(names(aveResult))]
Run Code Online (Sandbox Code Playgroud)

除了输出的长度不同外,这两个函数的结果是相同的。此外,在这种情况下,这也会造成混乱(由于回收而加剧)。

有没有一个例子,其中一个功能可以做另一个不能做的事情?

r

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