小编ali*_*ire的帖子

如何使用quosures将命名向量传递给dplyr :: select?

使用旧select_()函数,我可以将命名向量传递给select并立即更改位置和列名:

my_data  <- data_frame(foo = 0:10, bar = 10:20, meh = 20:30)
my_newnames  <-  c("newbar" = "bar", "newfoo" = "foo")

move_stuff  <- function(df, newnames) {
    select_(df, .dots = newnames)
}

move_stuff(my_data,  newnames = my_newnames) )

# this is the desired output
# A tibble: 4 x 2
  newbar  newfoo
   <int>   <int>
1     10       0
2     11       1
3     12       2
4     13       3
Run Code Online (Sandbox Code Playgroud)

我尝试使用quosures和拼接做类似的事情 - 选择列效果很好,但是矢量的名称(因此同时重命名列)似乎被忽略了.以下两个都返回数据框,列中包含名称barfoo,但不是newbarnewfoo:

move_stuff2  <- function(df, newnames) …
Run Code Online (Sandbox Code Playgroud)

r dplyr nse rlang

8
推荐指数
1
解决办法
1175
查看次数

字符串作为公式

我试过通过论坛搜索,但无法找到帮助.我对R很陌生,并且在加载一些字符串以用作公式方面成功有限.

我有一个csv具有以下格式:

            Sam, Frank, Dennis, Steven, Robert, Georgia
Region_1    218,    763,    811,    812,    797,    574
Region_2    474,    983,    343,    697,    310,    335
Region_3    700,    813,    133,    212,    906,    680
Region_4    212,    581,    893,    514,    530,    795
Run Code Online (Sandbox Code Playgroud)

我可以加载它并在我的数据框中添加额外的列,添加特定的列(即Sam + Frank,Dennis + Georgia).

如果我将团队硬编码到我的代码中,我可以做到,例如:

temp <- mutate(temp, team_1 = Sam + Robert) 
Run Code Online (Sandbox Code Playgroud)

我的问题是我有另一个包含2列列表的csv,这些是每天更改的团队,例如:

Team 1  Sam + Robert
Team 2  Frank + Georgia
Team 3  Frank + Steven
Team 4  Robert + Dennis
Team 5  Frank + Sam
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将此csv列表加载到R中并将这些团队成员列添加到一起.

但是我无法在csv文件中看到添加此列表,并且动态地拥有一个包含团队成员总数的新数据框.

有人能帮我这个吗?

我希望最终得到这样的结果(将团队成员(团队1,团队2等来自第二个csv文件)的总和作为附加列: …

r dplyr

8
推荐指数
1
解决办法
233
查看次数

as.double(y)出错:无法强制将'S4'强制转换为'double'类型的向量

我正在应用Aprior算法,并且在绘图时出现错误.

我已经安装了包arulesarulesviz.

数据有3个属性.两个被分解,一个属性未分解.我分别采用了属性属性和应用因子函数.代码如下:

New_Train_Wifi = read.xlsx("D:/Train_Test.xls",1)

str(New_Train_Wifi)
'data.frame':   2201 obs. of  3 variables:
 $ Wifi_ID: Factor w/ 4 levels "1st","2nd","3rd",..: 3 3 3 3 3 3 3 3 3 3 ...
 $ Store  : Factor w/ 5 levels "Book_Store","Clothing",..: 3 3 3 3 3 3 3 3 3 3 ...
 $ Mac_ID : num  125 125 125 125 125 125 125 125 125 125 ...

A <- as.factor(Test_ARM_ABC$Wifi_ID)
C <- as.factor(New_Train_Wifi$Mac_ID)
New_Train_Wifi$MacID <- NULL
New_Train_Wifi$MacID <- …
Run Code Online (Sandbox Code Playgroud)

r

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

在单个3D图中混合曲面和散点图

我正在研究特定海底结构周围鲸鱼分布的模式.我正在尝试创建一个同时显示的交互式3D图:

  1. 测深作为表面(x=经度,y=纬度,z=深度),和
  2. 鲸鱼群的地理位置(x=经度,y=纬度,z=固定深度 - 例如30米).

坐标在UTM坐标系中投影.

我通常使用R和ggplot2生成数字的包.在这里,plotly包装似乎是一个很好的选择.

我从一个测深光栅bathy_ras和一个数据点开始points.

> bathy_ras
class       : RasterLayer 
dimensions  : 784, 821, 643664  (nrow, ncol, ncell)
resolution  : 102, 111  (x, y)
extent      : 755070, 838812, -2612148, -2525124  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=58S +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : bathymetry 
values      : -1949.42, …
Run Code Online (Sandbox Code Playgroud)

gis r surface plotly

7
推荐指数
1
解决办法
4646
查看次数

在ggplot boxplot中的填充组中显示单独的平均值

我有一个使用3类数据的分组箱图.一个类别设置为箱图的x轴,另一个设置为填充,最后一个设置为分面类别.我想显示每个填充组stat_summary的平均值,但是仅使用给出了x轴类别的平均值,而没有分离填充的平均值:

刻面的箱形图

这是当前的代码:

demoplot<-ggplot(demo,aes(x=variable,y=value))
demoplot+geom_boxplot(aes(fill=category2),position=position_dodge(.9))+
stat_summary(fun.y=mean, colour="black", geom="point", shape=18, size=4,) +
facet_wrap(~category1)
Run Code Online (Sandbox Code Playgroud)

有没有办法显示每个类别2的均值,而无需手动计算和绘制点数?调整位置闪避并没有多大帮助,因为它只是一个计算平均值.是否可以在mean()函数内创建条件?

对于任何感兴趣的人,这里是数据:

感谢对此的任何启示.

plot r ggplot2 boxplot

7
推荐指数
1
解决办法
5562
查看次数

Purrr-Fection:利用Purrr寻找有条件数据帧操作的优雅解决方案

的背景

我有一个问题,其中有许多解决方案可能,但我相信有一个尚未发现的优雅解决方案利用purrr.

示例代码

我有一个如下的大数据框,我在其中包含了一个例子:

library(tibble)
library(ggmap)
library(purrr)
library(dplyr)

# Define Example Data
df <- frame_data(
  ~Street,                ~City,        ~State,     ~Zip,  ~lon,      ~lat,
  "226 W 46th St",        "New York",   "New York", 10036, -73.9867,  40.75902,
  "5th Ave",              "New York",   "New York", 10022, NA,        NA,
  "75 Broadway",          "New York",   "New York", 10006, -74.01205, 40.70814,
  "350 5th Ave",          "New York",   "New York", 10118, -73.98566, 40.74871,
  "20 Sagamore Hill Rd",  "Oyster Bay", "New York", 11771, NA,        NA,
  "45 Rockefeller Plaza", "New York",   "New York", 10111, -73.97771, …
Run Code Online (Sandbox Code Playgroud)

geocoding r ggmap purrr

7
推荐指数
1
解决办法
515
查看次数

具有不同分母R的分裂的累积和

好的,这是我希望使用高效,优雅的解决方案解决的问题,例如data.table或dplyr.

限定:

DT = data.table(group=c(rep("A",3),rep("B",5)),value=c(2,9,2,3,4,1,0,3))

   time group value  
1:    1     A     2  
2:    2     A     9 
3:    3     A     2 
4:    1     B     3     
5:    2     B     4 
6:    3     B     1 
7:    4     B     0 
8:    5     B     3 
Run Code Online (Sandbox Code Playgroud)

我想要得到的是一组累计和的值除以它们被观察的时刻的逆序.

   time group value    RESULT
1:    1     A     2  2.000000
2:    2     A     9 10.000000
3:    3     A     2  7.166667
4:    1     B     3  3.000000
5:    2     B     4  5.500000
6:    3     B     1  4.000000
7:    4     B     0  2.583333 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation dplyr data.table

7
推荐指数
1
解决办法
281
查看次数

使用小平面包裹设置单独的y轴限制,不使用刻度free_y

我有这些数据

library(ggplot2)

dat = data.frame(x = c(1,2,1,2), 
                 group = c("a","a","b","b"), 
                 y = c(10,20,1000,2000))

ggplot(dat, aes(x = x, y = y)) + 
    geom_point() + 
    geom_line() + 
    facet_wrap(~group, ncol = 1) +
    coord_cartesian(ylim = c(0, 30))
Run Code Online (Sandbox Code Playgroud)

您可以看到B组未显示,因为我将y限制设置为0,30.我想手动为每个图表设置单独的y限制.我不想使用,scales = "free_y"因为我需要控制每个图表中的限制.

有没有办法可以做到这一点?你能以某种方式为小平面包装中的每个图表提供y限制吗?

r ggplot2

7
推荐指数
1
解决办法
5796
查看次数

R中lm(y~.)中点的含义

我试图在其他人编写的代码中理解 R 中这条语句的含义。

mymodel = lm(gene ~ ., data = mydata) 
Run Code Online (Sandbox Code Playgroud)

mydata 如下:

> mydata
                 gene    cna rs11433683      PC1    PC2
TCGA.BH.A0C0 270.7446 0.1291          0 270.7446 0.1291
TCGA.A2.A3XY  87.9092 0.0128          1  87.9092 0.0128
TCGA.XX.A89A 255.1346 0.1530          1 255.1346 0.1530
Run Code Online (Sandbox Code Playgroud)

我已经浏览了 R 帮助部分以了解如何.解释。我知道这.通常不被使用,但这是我发现的

help(formula)
Run Code Online (Sandbox Code Playgroud)

.在一个公式中有两种特殊的解释。通常的一个是在data模型拟合函数参数的上下文中,意思是“所有不在公式中的列”:参见 terms.formula。在update.formula, only的上下文中,它的意思是“公式的这一部分以前是什么”

help(terms.formula)
Run Code Online (Sandbox Code Playgroud)

AllowDotAsName:通常.在公式中是指包含在data. 在特殊情况下,.可以将其视为公式的非标准用途的名称。

data: 一个数据帧,.可以从中推断出特殊符号的含义。如果.公式中没有,则不使用。

但是,我不太确定这些陈述的含义。有人能给我一个简单的例子,说明在我上面提到的语句和数据的上下文中它的含义吗?

r

7
推荐指数
1
解决办法
7621
查看次数

如何防止在R中调整字体,绘图对象等的大小?

我想在同一图像中有多个图,我想根据图像得到不同数量的图.确切地说,我首先创建一个1x2的图表矩阵,然后创建一个3x2的图表矩阵.我想对这两个图像使用相同的基本设置 - 特别是相同的字体大小,因为这是针对纸张的,并且字体大小必须至少为6磅.

为了实现这一点,我为R编写了以下代码:

filename = "test.png"
font.pt = 6    # font size in pts (1/72 inches)
total.w = 3    # total width in inches
plot.ar = 4/3  # aspect ratio for single plot
mat.col = 2    # number of columns
mat.row = 1    # number of rows
dpi = 300

plot.mar = c(3, 3, 1, 2) + 0.1
plot.mgp = c(2, 1, 0)
plot.w = total.w / mat.col - 0.2 * plot.mar[2] - 0.2 * plot.mar[4]
plot.h = plot.w …
Run Code Online (Sandbox Code Playgroud)

plot r

6
推荐指数
1
解决办法
185
查看次数

标签 统计

r ×10

dplyr ×3

ggplot2 ×2

plot ×2

boxplot ×1

data-manipulation ×1

data.table ×1

geocoding ×1

ggmap ×1

gis ×1

nse ×1

plotly ×1

purrr ×1

rlang ×1

surface ×1