我有一个关于微博的数据集(600 Mb与5038720观察),我试图找出一个用户在一小时内发布了多少推文(具有相同中间数的推文).以下是数据集的外观:
head(mydata)
uid mid year month date hour min sec
1738914174 3342412291119279 2011 8 3 21 4 12
1738914174 3342413045470746 2011 8 3 21 7 12
1738914174 3342823219232783 2011 8 5 0 17 5
1738914174 3343095924467484 2011 8 5 18 20 43
1738914174 3343131303394795 2011 8 5 20 41 18
1738914174 3343386263030889 2011 8 6 13 34 25
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
count <- function(x) {
length(unique(na.omit(x)))
}
attach(mydata)
hourPost <- aggregate(mid, by=list(uid, hour), FUN=count)
Run Code Online (Sandbox Code Playgroud)
它在那里挂了大约半个小时,我发现所有真正的内存(24 Gb)都被使用了,它开始使用虚拟内存.知道为什么这个小任务消耗了这么多时间和记忆,我该如何改进呢?提前致谢!
我有一个简单的自然样条(df = 3)模型,我试图预测一些样本观察.使用该函数predict(),我能够获得样本内观察的拟合值,但我无法获得新观察的预测值.
这是我的代码:
library(splines)
set.seed(12345)
x <- seq(0, 2, by = 0.01)
y <- rnorm(length(x)) + 2*sin(2*pi*(x-1/4))
# My n.s fit:
fit.temp <- lm(y ~ ns(x, knots = seq(0.01, 2, by = 0.1)))
# Getting fitted values:
fit.temp.values <- predict(fit.temp,interval="prediction", level = 1 - 0.05)
# Plotting the data, the fit, and the 95% CI:
plot(x, y, ylim = c(-6, +6))
lines(x, fit.temp.values[,1], col = "darkred")
lines(x, fit.temp.values[,2], col = "darkblue", lty = 2)
lines(x, fit.temp.values[,3], col …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个带有许多hexbin图的 PDF ,我希望每页有特定数量的图。
这个有效:
PDFPath = "C:\\temp\\some.pdf"
pdf(file=PDFPath)
par(mfrow = c(2,2))
for (i in seq(5,10))
{
VAR1 = rnorm(i)
VAR2 = rnorm(i)
plot(VAR1, VAR2)
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
这个不行。它每页只生成一个图:
library(hexbin)
PDFPath = "C:\\temp\\some.pdf"
pdf(file = PDFPath)
par(mfrow = c(2,2))
for (i in seq(5,10))
{
VAR1 = rnorm(i)
VAR2 = rnorm(i)
plot(hexbinplot(VAR1 ~ VAR2))
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
关于出了什么问题的任何想法?
编辑:
我刚刚注意到,原因是mfrow仅指基础图形而不是网格图形。有没有办法实现类似的结果hexbin?
在ggplot中,我们可以通过在数据框中指定具有条形高度的列来创建条形图
library("ggplot2")
library(plyr)
mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
ggplot(mm, aes(x = factor(cyl), y = mmpg)) + geom_bar(stat = "identity")
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何制作一个类似的情节,指出了条形的顶部和底部.例如,使用下面的数据
df <- read.table(text = " id min max
Sp1 8.5 13.2
Sp2 11.7 14.5
Sp3 14.7 17.7 ", header=TRUE)
Run Code Online (Sandbox Code Playgroud)
我们会得到一个非常类似的情节:

有什么建议?
我在将工作日的.csv数据列转换为数字时遇到问题(因此1 =星期一,2 =星期二,3 =星期三等).我正在尝试使用如下所示的strptime功能:http://www.inside-r.org/r-doc/base/strftime
由于我想将工作日转换为数字,因此我使用了"%u"格式化选项.这是我的代码如下:
> newweekdaynum <- strptime(SFCrimeData$DayOfWeek, "%u")
Run Code Online (Sandbox Code Playgroud)
其中SFCrimeData是一个数据集,我有一堆犯罪信息.在我运行语句后没有出现错误,但是当我想打印"newweekdaynum"时,所有出现的都是一个巨大的值表,都是"NA".
我究竟做错了什么?
我正在尝试将正态分布曲线叠加到 R 中的直方图上。我知道这是一个以前被问过的问题,但我很难找到适合我的解决方案。
这是我的代码:
hist(input_data$"X109_scalesraw_23", freq = TRUE, breaks = 30,
col = "cadetblue", xlim = c(0,30), ylim = c(0,150),
main = "023", xlab = "score")
Run Code Online (Sandbox Code Playgroud) 如何通过将每个原始值除以原始矩阵中该列的原始平方值的平方根来获得.
data(longley)
X <- as.matrix(longley[,-7])
X/sqrt(colSums(X^2))
Run Code Online (Sandbox Code Playgroud)
得出错误的结果.
如何在facet_grid()不切换公式的情况下更改标签的位置?
library(plyr)
library(ggplot2)
data = data.frame(id = 1:10, value = rnorm(100*10))
data = ddply(data, .(id), transform, obs = 1:100)
ggplot(data = data, aes(x = obs, y = value, color = factor(id))) +
geom_line() +
facet_grid(id ~.)
Run Code Online (Sandbox Code Playgroud)
在下图中,我希望面板文本从面板的右侧切换到顶部.

我正在使用https://github.com/mplatzer/BTYDplus/blob/master/R/pareto-nbd-mcmc.r中给出的BTYD plus代码.该代码使用MCMC技术来估计BTYD模型的Pareto/NBD参数.
所以,如果您看到代码的第224-228行,它使用的函数'mclapply' - 我发现它只能在Linux或MAC上运行.我正在使用Windows机器,需要转换这部分代码,以便我也可以在Windows机器上执行它.那么,任何人都可以帮助我使用这个特定的代码,或者可以大致了解如何使用'mclapply'的窗口?
任何帮助将不胜感激.