这是我可重复的数据:
library("ggplot2")
library("ggplot2movies")
library("quantreg")
set.seed(2154)
msamp <- movies[sample(nrow(movies), 1000), ]
Run Code Online (Sandbox Code Playgroud)
我正在尝试熟悉stat_quantile,但文档中的示例提出了几个问题.
mggp <- ggplot(data=msamp, mapping=aes(x=year, y=rating)) +
geom_point() +
stat_quantile(formula=y~x, quantiles=c(0, 0.25, 0.50, 0.75, 1)) +
theme_classic(base_size = 12) +
ylim(c(0,10))
mggp
Run Code Online (Sandbox Code Playgroud)
根据我的理解,分位数将数据分成小于定义的截止值的部分,对吗?如果我像下面的代码中那样定义分位数,我得到五行.为什么?它们代表什么?
似乎分位数是基于y轴上的因变量(评级)计算的.有可能扭转这种局面吗?我的意思是根据"年份"中的分位数分割数据?
假设你有一个data.frames列表
dfs <- list(
a = data.frame(x = c(1:4, 7:10), a = runif(8)),
b = data.frame(x = 1:10, b = runif(10)),
c = data.frame(x = 1:10, c = runif(10))
)
Run Code Online (Sandbox Code Playgroud)
我现在想要提取此列表中最长的data.frame或data.frames.怎么样?
我被困在这一点上:
library(plyr)
lengths <- lapply(dfs, nrow)
longest <- max(lengths)
Run Code Online (Sandbox Code Playgroud) 我正在关注ggplot文档中的一个示例
这是代码:
library(plyr)
coefs <- ddply(mtcars, .(cyl), function(df) {
m <- lm(mpg ~ wt, data=df)
data.frame(a = coef(m)[1], b = coef(m)[2])
})
p <- ggplot(mtcars, aes(x = wt, y=mpg), . ~ cyl) + geom_point()
p + geom_abline(data=coefs, aes(intercept=a, slope=b))
Run Code Online (Sandbox Code Playgroud)
但是,我想只使用'ablines'相同的图形!没有点!试:
p <- ggplot(mtcars, aes(x = wt, y=mpg), . ~ cyl)
p + geom_abline(data=coefs, aes(intercept=a, slope=b))
Run Code Online (Sandbox Code Playgroud)
给我一个错误:"参数"env"缺失,没有默认值'
我对stats::model.matrix
R中的函数之以鼻。在描述中它说它将创建一个设计矩阵。它给了我奇怪的行数,既不对应于我的数据中的观察数,也不对应于我的模型中的参数数。
什么是设计矩阵/模型矩阵?
这是我的用法:
M03b <- glmer(APMs ~ PrePost + Gf + eyeFRF + (1|content) + (eyeFRF|ID), data=mlmData, family=binomial("logit"))
X <- model.matrix(M03b)
Run Code Online (Sandbox Code Playgroud)
它给了我2895x4矩阵 ID有105个级别,内容为28,所以行数对我来说意义不大。也许缺少价值是一个问题?
我想编写一个函数将excel列名转换为相应的数字.到目前为止我想出的只是部分工作.也就是说,较低的字母首先出现的输入("AB",AC"等)工作正常.但它不起作用("BA","CA"等).我已经追踪到错误到行,y <- which(base::LETTERS==x)
但我真的不明白这些布尔运算符如何在向量上工作.任何建议?
#so to pass excel column-names directly, this function should do the trick
LettersToNumbers <- function(input){
x <- toupper(substring(input, c(1:nchar(input)), c(1:nchar(input)))) #parse input-string
y <- which(base::LETTERS==x) #letters to numbers
y <- rev(y) #reverse
#base26 conversion:
result <- 0
for (i in 1:length(y)){
result <- result + ( y[i]*26^(i-1) )
}
return(result)
}
Run Code Online (Sandbox Code Playgroud)
事实上,事实证明还有一些例子不起作用.这里有一些,我真的不明白发生了什么.
> which(LETTERS==c("A", "B"))
[1] 1 2
> which(LETTERS==c("A", "C"))
[1] 1
> which(LETTERS==c("A", "D"))
[1] 1 4
> which(LETTERS==c("D", "A"))
integer(0)
>
Run Code Online (Sandbox Code Playgroud) 我有这个功能.
change <- function(score, d, k, p) {k*(score - 1/(1+k^(d/p)))}
Run Code Online (Sandbox Code Playgroud)
我想在一个单独的图中绘制一系列参数d和p的函数的所有结果.在基地r就是这样.
parameters <- c(100:400)
colorshelf <-rainbow(length(parameters)) #red is low
for(i in seq_along(parameters)) {
print(i)
curve(change(score=1, d=x, k=100, p=parameters[i]), from=0, to=500, add=T, col=colorshelf[i])
}
Run Code Online (Sandbox Code Playgroud)
但是我认为这在ggplot2中一定是可能的,但是无法解决这个问题.我目前仍然坚持这一点.任何帮助表示赞赏.
ggp <- ggplot(data.frame(Ds=c(0:1000), Ps=c(0:1000)), aes(x=Ds, col=Ps)) +
stat_function(fun=change, args=list(score=1, d=Ds, k=100, p=Ps))
ggp
Run Code Online (Sandbox Code Playgroud) a = data.frame(x = c("fl", "kl", "po", "rt", "st"), a = runif(5), b = runif(5), c = runif(5), stringsAsFactors=FALSE)
reference = c("po", "rt", "fl", "st", "kl")
Run Code Online (Sandbox Code Playgroud)
有data.frame a
,它应该x
根据reference
向量排序.我该怎么做?
我想知道这个,%>%
所以我输入?%>%
控制台并得到:
Error: unexpected SPECIAL in "?%>%"
.很公平.所以我键入?"%>%"
并获得以下内容:
%>% package:tidyr R Documentation
Pipe operator
Description:
See ‘%>%’ for more details.
Usage:
lhs %>% rhs
Run Code Online (Sandbox Code Playgroud)
好吧!?'%>%'
但是,打字会引导我进入完全相同的帮助页面.我的错是什么?
不需要解释管道操作员,我现在用Google搜索了,但我会做什么,是我在没有互联网的火车上?
编辑.我觉得这个问题有点误导,所以让我重新说一下.如何%>%
在R的帮助文档中找到管道操作员的相应文档?如果文档告诉我"查看...以获取更多详细信息",这究竟是什么意思?那我该怎么办?