小编Tun*_*ung的帖子

在 R 中按列在两个数据帧之间应用函数 (ks.test)

我的简单问题是:如何ks.test逐列在两个数据框之间进行处理?

例如。我们有两个数据框:

D1 <- data.frame(D$Ag, D$Al, D$As, D$Ba, D$Be, D$Ca, D$Cd, D$Co, D$Cu, D$Cr)
D2 <- data.frame(S$Ag, S$Al, S$As, S$Ba, S$Be, S$Ca, S$Cd, S$Co, S$Cu, S$Cr)
Run Code Online (Sandbox Code Playgroud)

注意:这只是一个例子 - 实际情况将包括更多的列,并且它们包含特定位置中某个元素的浓度。

现在我想在两个数据帧之间运行 ks.test :

ks.test(D$Ag, S$Ag)
ks.test(D$Al, S$Al)
ks.test(D$As, S$As)
Run Code Online (Sandbox Code Playgroud)

等等。如何在不做奴隶制工作的情况下做到这一点?

当我对一个数据框进行 shapiro.test 时,我只是使用:

lshap1 <- lapply(D1, shapiro.test)
lres1 <- sapply(lshap1, `[`, c("statistic","p.value"))
Run Code Online (Sandbox Code Playgroud)

我读过一些关于循环、聚合、映射的东西 - 尝试了不同的东西,比如:

apply(D1, 2, function(D2) ks.test(D2,D1[,1])$p.value)
Run Code Online (Sandbox Code Playgroud)

但后来我得到了很多 p 值 = 0.. 当我手动执行时,情况并非如此。

编辑:09.10.2017 我将数据作为两个数据框导入,然后我将一些数据提取到“较小”的数据框进行分析 - 例如在这种情况下查看有毒元素并排除其他元素。

样本数据:dput(head(D1))dput(head(D2))

## Output dput(head(D1)):
structure(list(DF.As = …
Run Code Online (Sandbox Code Playgroud)

r apply dataframe kolmogorov-smirnov purrr

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

Slurm:选择sbatch Slurm中的CPU和线程数

sbatch手册页中使用的术语可能有点令人困惑.因此,我想确保我正确设置选项.假设我有一个任务在一个有N个线程的节点上运行.我是否正确地假设我会使用--nodes = 1和--ntasks = N?我习惯于考虑使用例如pthreads在单个进程中创建N个线程.他们称之为"核心"或"每个任务的cpus"的结果是什么?CPU和线程在我的脑海里并不是一回事.

parallel-processing multithreading hpc mpi slurm

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

ggsave() 不会将文本加粗,它会更改所有文本的字体而不仅仅是绘图标题

我正在 ggplot2 中制作图表,但ggsave()没有达到我的预期。

require(ggplot2)
require(showtext)

showtext_auto()
hedFont <- "Pragati Narrow"
font_add_google(
  name = hedFont,
  family = hedFont,
  regular.wt = 400,
  bold.wt = 700
)

chart <- ggplot(
  data = cars,
  aes(
    x = speed,
    y = dist
  )
) +
  geom_point() +
  labs(
    title = "Here is a title",
    subtitle = "Subtitle here"
  ) +
  theme(
    plot.title = element_text(
      size = 20,
      family = hedFont,
      face = "bold"
    ),
    axis.title = element_text(
      face = "bold"
    )
  )

ggsave( …
Run Code Online (Sandbox Code Playgroud)

fonts r ggplot2 showtext extrafont

8
推荐指数
2
解决办法
5081
查看次数

使用ggplot绘制大量时间序列.有可能加快速度吗?

我正在处理数千个气象时间序列数据(样本数据可以从这里下载) https://dl.dropboxusercontent.com/s/bxioonfzqa4np6y/timeSeries.txt

在我的Linux Mint PC(64位,8GB RAM,双核2.6 GHz)上使用ggplot2绘制这些数据耗费了大量时间.我想知道是否有办法加快速度或更好地绘制这些数据?非常感谢您的任何建议!

这是我现在使用的代码

##############################################################################
#### load required libraries        
library(RCurl)
library(dplyr)    
library(reshape2)
library(ggplot2)

##############################################################################
#### Read data from URL
dataURL = "https://dl.dropboxusercontent.com/s/bxioonfzqa4np6y/timeSeries.txt"
tmp <- getURL(dataURL)
df <- tbl_df(read.table(text = tmp, header=TRUE))
df

##############################################################################
#### Plot time series using ggplot2
# Melt the data by date first
df_melt <- melt(df, id="date")
str(df_melt)

df_plot <- ggplot(data = df_melt, aes(x = date, y = value, color = variable)) +
  geom_point() +
  scale_colour_discrete("Station #") +
  xlab("Date") +
  ylab("Daily Precipitation [mm]") …
Run Code Online (Sandbox Code Playgroud)

performance r time-series ggplot2 rcurl

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

删除ggplot多面图中的一些轴标签

我创建像一个阴谋在这里的人ggplot2包和facet_wrap功能,我想抑制一些x轴的文字,使之更加清晰.

例如,如果x轴刻度仅出现在方框D,F,H和J上,那么它将更清晰.

我怎么能这样做?提前致谢!

编辑:可重现的代码

library(ggplot2)
d <- ggplot(diamonds, aes(carat, price, fill = ..density..)) +
  xlim(0, 2) + stat_binhex(na.rm = TRUE) + theme(aspect.ratio = 1)
d + facet_wrap(~ color, nrow = 1)
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 gtable

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

ggplot:离散 x 轴的线图

我有下表,但经过多次尝试无法绘制数据,以便 x 轴刻度线与year. 我找到了箱线图的解决方案,但不适用于geom_line()

我怎样才能制作一年的离散标签?

以下解决方案不起作用

g + scale_x_discrete(limits=c("2013","2014","2015"))
g + scale_x_discrete(labels=c("2013","2014","2015"))
Run Code Online (Sandbox Code Playgroud)
distance_of_moves
  距离移动年
1 2.914961 2013
2 2.437516 2014
3 2.542500 2015

ggplot(data = distance_of_moves, aes(x = year, y = `distancemoved`, group = 1)) +
 geom_line(color = "red", linetype = "dashed", size = 1.5) +
 geom_point(color = "red", size = 4, shape = 21, fill = "white") + 
 ylab("平均移动距离") + 
 xlab("年") 

在此处输入图片说明

r ggplot2

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

如何扩展'摘要'功能,包括sd,kurtosis和skew?

R的summary功能在数据帧上运行得非常好,例如:

> summary(fred)
   sum.count          count              sum              value      
 Min.   : 1.000   Min.   :    1.0   Min.   :      1   Min.   : 0.00  
 1st Qu.: 1.000   1st Qu.:    6.0   1st Qu.:      7   1st Qu.:35.82  
 Median : 1.067   Median :    9.0   Median :     10   Median :42.17  
 Mean   : 1.238   Mean   :  497.1   Mean   :   6120   Mean   :43.44  
 3rd Qu.: 1.200   3rd Qu.:   35.0   3rd Qu.:     40   3rd Qu.:51.31  
 Max.   :40.687   Max.   :64425.0   Max.   :2621278   Max.   :75.95
Run Code Online (Sandbox Code Playgroud)

我想要做的是修改函数,以便在'Mean'之后给出标准偏差,峰度和倾斜的条目.

最好的方法是什么?我对此进行了一些研究,使用方法添加函数对我不起作用:

> summary.class <- function(x)
{ …
Run Code Online (Sandbox Code Playgroud)

r summary std skew kurtosis

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

使用ggplot2在facet躲避条形图上添加文本

我想在两年内制作一个躲避的条形图,并将收入数字放在相应的栏上.在尝试了一些我在这里找到的建议之后,我仍然无法得到我想要的东西(所有数字都显示在中间条/列的中间而不是均匀分布).任何建议将不胜感激.谢谢!

我的最新尝试

# Disable scientific notation
options("scipen" = 100, "digits" = 1)

censusData <- structure(list(Year = c(2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 
                                      2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 
                                      2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 2007L, 2012L, 2007L
                                      ), County = c("A", "A", "B", "B", "C", "C", "Sum", "Sum", "A", 
                                      "A", "B", "B", "C", "C", "Sum", "Sum", "A", "A", "B", "B", "C", 
                                      "C", "Sum", "Sum"), variable = structure(c(1L, 1L, 1L, 1L, 1L, 
                                      1L, 1L, 1L, 2L, 2L, …
Run Code Online (Sandbox Code Playgroud)

text r facet bar-chart ggplot2

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

在SEPARATE LINES图上添加回归线方程和R2

几年前,一张海报询问如何在下面的链接中添加回归线方程和R2在ggplot图上.

在图上添加回归线方程和R2

最重要的解决方案是:

lm_eqn <- function(df){
    m <- lm(y ~ x, df);
    eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2, 
         list(a = format(coef(m)[1], digits = 2), 
              b = format(coef(m)[2], digits = 2), 
             r2 = format(summary(m)$r.squared, digits = 3)))
    as.character(as.expression(eq));                 
}

p1 <- p + geom_text(x = 25, y = 300, label = lm_eqn(df), parse = TRUE)
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码,它很有用.但是,我想知道是否有可能使这段代码在单独的行上具有R2值和回归线方程,而不是用逗号分隔.

而不是像这样

而不是像这样

像这样的东西

像这样的东西

在此先感谢您的帮助!

regression r ggplot2 ggpmisc

6
推荐指数
2
解决办法
2193
查看次数

ggplot-多个图例排列

我想在ggplot中安排多行和多行图例。但是目前,从文档中,我只能在1个图例中确定方向或操作行/列。我忽略了什么吗?感谢您对解决方案的任何参考。这是示例代码,我做了什么以及预期的结果。

data <- seq(1000, 4000, by=1000)
colorScales <- c("#c43b3b", "#80c43b", "#3bc4c4", "#7f3bc4")
names(colorScales) <- data
ggplot() +
    geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
               shape=21) +
    scale_color_manual(name="Legend 1",
                      values=colorScales) +
    scale_fill_gradientn(name="Legend 2",
                          labels=comma, limits=c(0, max(data)),
                          colours=rev(c("#000000", "#FFFFFF", "#BA0000")),
                         values=c(0, 0.5, 1)) +
    scale_size_continuous(name="Legend 3") +
    theme(legend.direction = "vertical", legend.box = "vertical")
Run Code Online (Sandbox Code Playgroud)

输出垂直图例: 在此处输入图片说明

ggplot() +
    geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
               shape=21) +
    scale_color_manual(name="Legend 1",
                       values=colorScales) +
    scale_fill_gradientn(name="Legend 2",
                         labels=comma, limits=c(0, max(data)),
                         colours=rev(c("#000000", "#FFFFFF", "#BA0000")), 
                         values=c(0, 0.5, 1)) +
    scale_size_continuous(name="Legend 3") +
    theme(legend.direction = …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2 cowplot

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