我想按多列对data.frame进行排序.例如,对于下面的data.frame,我想按列z(降序)然后按列b(升序)排序:
dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"),
levels = c("Low", "Med", "Hi"), ordered = TRUE),
x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
z = c(1, 1, 1, 2))
dd
b x y z
1 Hi A 8 1
2 Med D 3 1
3 Hi A 9 1
4 Low C 9 2
Run Code Online (Sandbox Code Playgroud) 我有一个图,其中x轴是标签很长的因子.虽然可能不是理想的可视化,但现在我想简单地将这些标签旋转为垂直.我已经用下面的代码想出了这个部分,但正如你所看到的,标签并不完全可见.
data(diamonds)
diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut))
q <- qplot(cut,carat,data=diamonds,geom="boxplot")
q + opts(axis.text.x=theme_text(angle=-90))
Run Code Online (Sandbox Code Playgroud)
我想使用ggplot2包并排放置两个图,即相当于par(mfrow=c(1,2)).
例如,我希望以下两个图表以相同的比例并排显示.
x <- rnorm(100)
eps <- rnorm(100,0,.2)
qplot(x,3*x+eps)
qplot(x,2*x+eps)
Run Code Online (Sandbox Code Playgroud)
我需要将它们放在相同的data.frame中吗?
qplot(displ, hwy, data=mpg, facets = . ~ year) + geom_smooth()
Run Code Online (Sandbox Code Playgroud) 我发现R的ifelse陈述不时很方便.例如:
ifelse(TRUE,1,2)
# [1] 1
ifelse(FALSE,1,2)
# [1] 2
Run Code Online (Sandbox Code Playgroud)
但是我对以下行为感到困惑.
ifelse(TRUE,c(1,2),c(3,4))
# [1] 1
ifelse(FALSE,c(1,2),c(3,4))
# [1] 3
Run Code Online (Sandbox Code Playgroud)
这是一个超出我的薪资水平的设计选择吗?
目标:从相等长度的向量列表中,创建一个矩阵,其中每个向量成为一行.
例:
> a <- list()
> for (i in 1:10) a[[i]] <- c(i,1:5)
> a
[[1]]
[1] 1 1 2 3 4 5
[[2]]
[1] 2 1 2 3 4 5
[[3]]
[1] 3 1 2 3 4 5
[[4]]
[1] 4 1 2 3 4 5
[[5]]
[1] 5 1 2 3 4 5
[[6]]
[1] 6 1 2 3 4 5
[[7]]
[1] 7 1 2 3 4 5
[[8]]
[1] 8 1 2 3 4 5 …Run Code Online (Sandbox Code Playgroud) 我正在为Emacs使用Emacs-Speaks-Statistics(ESS)模式.编辑R代码时,任何注释行(以#开头的那些注释行)会在我上面创建一个新行时自动获得最右边的选项卡.我应该如何更改我的.emacs.el文件来修复此问题?
例如,我有:
# Comment
Run Code Online (Sandbox Code Playgroud)
现在,在将光标放在行的开头并按Enter后,我得到:
# Comment
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何提示.
我有一个0到5之间的整数向量.我想计算一个计数的直方图.例如:
y <- c(0, 0, 1, 3, 4, 4)
table(y)
# y
# 0 1 3 4
# 2 1 1 2
Run Code Online (Sandbox Code Playgroud)
但是,我也希望结果包括零2和零5的事实,即.我希望返回的向量长度为6.我可以用table()它吗?
期望的结果:
# y
# 0 1 2 3 4 5
# 2 1 0 1 2 0
Run Code Online (Sandbox Code Playgroud) 假设我有以下内容
y <- rnorm(10)
b <- as.factor(sample(1:4,10,replace=T))
qplot(1:10, y, shape=b)
Run Code Online (Sandbox Code Playgroud)
如何更改使用的形状ggplot2?
我经常编写需要在我的环境中查看其他对象的函数.例如:
> a <- 3
> b <- 3
> x <- 1:5
> fn1 <- function(x,a,b) a+b+x
> fn2 <- function(x) a+b+x
> fn1(x,a,b)
[1] 7 8 9 10 11
> fn2(x)
[1] 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)
正如所料,这两个函数都是相同的,因为它fn2可以在执行时"看到"a和b.但每当我开始利用这一点时,在大约30分钟内我最终调用函数时没有必要的变量(例如a或b).如果我没有利用这一点,那么我觉得我不必要地绕过物体.
是否更好地明确函数需要什么?或者应该通过内联注释或函数的其他文档来处理?有没有更好的办法?