小编dul*_*aux的帖子

R使用dplyr将列移动到最后

对于具有n列的data.frame ,我希望能够将列从1-(n-1)个位置中的任何一个移动到第n列(即非最后一列是最后一列).我也想用它来做dplyr.我想这样做,而不是简单地输入所有列的名称.

例如:

data<-data.frame(a=1:5, b=6:10, c=11:15)
Run Code Online (Sandbox Code Playgroud)

这有效,但不是dplyr这样的:

data[,c(colnames(data)[colnames(data)!='b'],'b')]
Run Code Online (Sandbox Code Playgroud)

这是首先dplyr创建列的方法b:

data%>%select(b, everything())
Run Code Online (Sandbox Code Playgroud)

但这不能使列b最后:

data%>%select(everything(), b)
Run Code Online (Sandbox Code Playgroud)

这有效,但要求我输入所有列:

data%>%select(a,c,b)
Run Code Online (Sandbox Code Playgroud)

那么有一种优雅的dplyr方式来做到这一点吗?

相关问题:

r dplyr

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

分类范围中geom_point的position_dodge的垂直等效项

当我有一个明确的y变量时,我想避开垂直重叠的geom_point。

library(tidyverse)
# all possible points
df <- expand.grid(
  y_factor = paste0('factor_',1:5),
  x =1:100
)%>%as.tbl

# randomly missing and overlapping points
# every green point has a pink point underneath, and every blue point 
# has a green point underneath it.
seed<-1
df_with_overlap<-df%>%
  sample_frac(0.5,replace = TRUE)%>%
  group_by(y_factor,x)%>%
  mutate(n=factor(1:n()))
p<-ggplot(data=df_with_overlap, aes(x=x, y=y_factor, col=n))
p+geom_point()
Run Code Online (Sandbox Code Playgroud)

no_dodge

position_dodge由于数据在该轴上过于拥挤,因此无法使用水平躲避,因此某些点仍然重叠并且可视化效果不清晰。

p+geom_point(position=position_dodge(width=1))+
  ggtitle('position_dodge isnt what Im looking for. 
          \nx-axis too crowded and points still overlap')
Run Code Online (Sandbox Code Playgroud)

position_dodge

position_jitter这种工作方式是因为我可以将x抖动限制为0,并控制y抖动的程度。但是,抖动的随机性使其吸引力降低。当它们存在时,我可以区分出三种颜色。

p+geom_point(aes(col=n), position=position_jitter(width=0, height=0.05))+
  ggtitle('Jitter kind of works.
          \nIt would …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

我无法在data.table中使用dtplyr做什么

这个问题是关于理解,我要投资我的学习精力用于数据R.之间扯皮具体dplyrdtplyrdata.table。我dplyr主要使用数据,但是当数据太大而无法使用时data.tabe,这种情况很少发生。因此,现在dtplyrv1.0已成为的接口data.table,从表面上看,我似乎再也不需要担心data.table再次使用该接口。

那么,目前尚不能使用的最有用的功能或方面data.table是什么dtplyr,而将来可能永远无法使用dtplyr

从表面上看,dplyr借助的好处,data.table它听起来像dtplyr会超越dplyr。会不会有任何理由来使用dplyr,一旦dtplyr已经完全成熟?

注意:我不是在问dplyrvs data.table(就像在data.table vs dplyr中:一个人可以做得很好而另一个不能做得不好或做得不好吗?),但是鉴于在一个特定问题上一个人比另一个人更受青睐,为什么呢?牛逼dtplyr是使用工具。

r dplyr data.table dtplyr

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

标签 统计

r ×3

dplyr ×2

data.table ×1

dtplyr ×1

ggplot2 ×1