小编Chr*_*ois的帖子

如何按多列对数据帧进行排序?

我想按多列对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)

sorting r dataframe r-faq

1266
推荐指数
19
解决办法
117万
查看次数

在ggplot2中旋转和间隔轴标签

我有一个图,其中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)

在此输入图像描述

r labels ggplot2

607
推荐指数
7
解决办法
67万
查看次数

与ggplot2并排绘制

我想使用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)

visualization r ggplot2

315
推荐指数
10
解决办法
33万
查看次数

为什么R的ifelse语句不能返回向量?

我发现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)

这是一个超出我的薪资水平的设计选择吗?

if-statement r r-faq

105
推荐指数
5
解决办法
3万
查看次数

如何从R中的向量列表中创建矩阵?

目标:从相等长度的向量列表中,创建一个矩阵,其中每个向量成为一行.

例:

> 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)

r vector matrix

100
推荐指数
5
解决办法
11万
查看次数

Emacs ESS模式 - 评论区域的标签

我正在为Emacs使用Emacs-Speaks-Statistics(ESS)模式.编辑R代码时,任何注释行(以#开头的那些注释行)会在我上面创建一个新行时自动获得最右边的选项卡.我应该如何更改我的.emacs.el文件来修复此问题?

例如,我有:

# Comment
Run Code Online (Sandbox Code Playgroud)

现在,在将光标放在行的开头并按Enter后,我得到:

                                # Comment
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何提示.

emacs r ess

49
推荐指数
3
解决办法
5006
查看次数

在表()的结果中包括零计数的级别

我有一个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)

r missing-data

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

在ggplot2中更改用于scale_shape()的形状

假设我有以下内容

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

r ggplot2

32
推荐指数
3
解决办法
5万
查看次数

在R中编写函数,记住范围

我经常编写需要在我的环境中查看其他对象的函数.例如:

> 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).如果我没有利用这一点,那么我觉得我不必要地绕过物体.

是否更好地明确函数需要什么?或者应该通过内联注释或函数的其他文档来处理?有没有更好的办法?

scope r

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

std :: vector <std :: string>到char*数组

我有一个std::vector<std::string>我需要用于C读取的函数的参数char* foo.我已经看到 如何转换std::stringchar*.作为新手C++,我正在尝试拼凑如何在矢量的每个元素上执行此转换并生成char*数组.

我已经看到了几个密切相关的SO问题,但大多数问题似乎都说明了朝着另一个方向发展的方法std::vector<std::string>.

c c++ stl stdvector

30
推荐指数
3
解决办法
4万
查看次数