小编Jel*_*ina的帖子

如何设置使用管道%>%运算符传递的数据框的行名?

我有一个数据框,我正在dcast使用该reshape2包,我想删除第一列,让它成为数据框的行名称.

原始数据帧,之前dcast:

> corner(df)

ID_full      gene cpm
1  S36-A1   DDX11L1   0
2  S36-A1    WASH7P   0
3  S36-A1 MIR1302-2   0
4  S36-A1   FAM138A   0
5  S36-A1     OR4F5   0
Run Code Online (Sandbox Code Playgroud)

pivot dcast表的功能:

 library(reshape2)

 pivot <- function(x){
             castTable <- x %>% dcast(ID_full ~ gene, value.var="cpm")
             }
Run Code Online (Sandbox Code Playgroud)

之后dcast,包裹在我的pivot功能中:

> corner(df)

ID_full 1060P11.3 A1BG A1BG-AS1 A1CF
1  S36-A1         0    0        0    0
2 S36-A10         0    0        0    0
3 S36-A11         0    0        0    0
4 S36-A12 …
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr magrittr

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

如何使用熔化命名每个变量

我有一个矩阵,我想改进绘制ggplo2使用melt函数,reshape2但无法找到添加自定义标题名称的方法.

#Create toy data
MyData <- matrix(rnorm(15,500), nrow = 5, ncol = 3, dimnames = list(
    c("Unknown","0-4","4-9","10-14","15-19"),c("Area1","Area2","Area3")))

Dat2 <- melt(MyData, value.name = "Count")

#Reform data using melt, define Count as value name
MyData2 <- melt(MyData, value.name = "Count")
Run Code Online (Sandbox Code Playgroud)

这让我得到了我想要的东西,但接下来的操作必须参考Var1Var2.

我尝试使用variable.name以下命令明确命名它们:

MyData2 <- melt(MyData, value.name = "Count",
    variable.name = c("AgeGroup", "Geo"))
Run Code Online (Sandbox Code Playgroud)

我当然可以在使用之后命名它们colnames()但是想要使用它melt.这可能吗?我需要备份吗?

谢谢!

r melt reshape2

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

在ggplot中有panel.border的问题

我想让我的情节边框成为黑色以外的某种颜色.我注意到如果我使用以下命令将默认主题设置为theme_bw():

theme_set(theme_bw())
Run Code Online (Sandbox Code Playgroud)

我可以将边框设置为我想要的颜色

theme(panel.border = element_rect(color="darkred", size=0.5, linetype="solid").
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.每个面板的边框,无论是刻面图还是单个图,都采用"深色"颜色,其余部分与我更改panel.border之前的相同.

但是,如果我使用不同的默认主题,比如theme_gray()或theme_classic(),则边框会发生变化但每个方面的内容都会被删除(完全白色).

有什么想法导致这种行为差异或我能做些什么来解决它?我想使用theme_gray()并在每个方面的边框周围放一条细彩色线条.

themes r panel ggplot2

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

如何在dplyr中将多个列名称作为输入传递给group_by

我是R和dplyr包的新手.我试图将变量传递给dplyr group_by,我们可以改变/改变它.例如,在使用航班数据集时,我可以使用以下代码获取任何列(或多列)的行数:

library(nycflights13)
flights %>% group_by(origin) %>% tally()
flights %>% group_by(carrier) %>% tally()
flights %>% group_by(origin,carrier) %>% tally()
Run Code Online (Sandbox Code Playgroud)

但是如果我想传递所用列的名称,将group_by作为变量传递,则在使用多个列名时它不起作用.

group="carrier"
flights %>% group_by_(group) %>% tally()

group="origin"
flights %>% group_by_(group) %>% tally()

group=c("origin","carrier") #This does not work
flights %>% group_by_(group) %>% tally()
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助.谢谢.

r dplyr

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

离散轴刻度和标签与实际值相比发生了偏移

我有一个数据集如下:我有一个这样的数据框,称为data_frame_test.

        Value    time   group
   3.96655960       0     184
  -8.71308460       0     184
 -11.11638947       0     184
  -6.84213562      11     184
  -1.25926609      11     184
  -4.60649529      11     184
   0.27577858      11     184
  11.85394249      20     184
  -0.27114563      20     184
   1.73081284      20     184
   1.78209915      20     184
  11.34305840      20     184
  13.49688263      20     184
  -7.54752045      20     184
 -13.63673286      25     184
  -5.75711517      25     184
   0.35823669      25     184
  -2.45237694      25     184
   0.49313087       0      66
  -9.04148674       0      66
 -15.50337906       0      66
 -17.51445351       0      66
 -10.66807098       0      66
  -2.24337845       5      66
 -13.79929533       5 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

从字符串末尾分隔定界符固定次数

我有一个数据帧如下:

df = data.frame(a = 1:4, strings = c('ooss_bboo_foo','ee_bbbbee_fffee','aas_baa_ffaa_daa', 'iisss_bbbbii_ffffii_dii_mii'))
Run Code Online (Sandbox Code Playgroud)

我想拆分_,生成新的列(或新的数据框,并不重要).可以用min(lengths(strsplit(df$strings, "_")))和估计出现的次数max(lengths(strsplit(df$strings, "_")))

期望的输出:

  X1                   X2       X3
1 ooss                 bboo     foo
2 ee                   bbbbee   fffee
3 aas_baa              ffaa     daa
4 iisss_bbbbii_ffffii  dii      mii
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多正则表达式,我已经非常绝望了......

regex r

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

如何使用annotate_figure添加带副标题的标题?

我正在使用ggarrangeannotate_figure并排显示两个图。在我的实际代码中,每个子图都有不同的标题,但在整个图的顶部需要一个通用的标题和副标题。

我知道如何在顶部添加文本,但是如何添加两行,每行具有不同的字体(例如顶部标题应该大/粗体,第二行/副标题应该更小并且是常规字体)?

这是我制作标题的方法。text_grob有没有办法在 中添加 a top

library(tidyverse)
library(ggpubr)

df <- data.frame()
plot1 <- ggplot(df) + geom_point() + xlim(0, 10) + ylim(0, 100)
plot2 <- ggplot(df) + geom_point() + xlim(0, 10) + ylim(0, 100)

all.plots <- ggarrange(plot1, plot2)
annotate_figure(all.plots,
                top=text_grob("Antibiotic Effectiveness"))
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gridextra ggpubr

2
推荐指数
1
解决办法
4935
查看次数

BFG(历史记录编辑)后,所有提交都重复

我不知道使用BFG删除大文件/敏感文件的干净方法,错过了关键步骤: git clone --mirror git://example.com/some-big-repo.git

当我尝试将其推送到远程站点时,会导致历史冲突,我天真地解决 git pull origin master --allow-unrelated-histories了这些冲突,合并了一些冲突,然后再进行推送。

这重复了提交,有时是5-10次。

由于我一个人在做这个仓库,所以我既没有选择清理这个仓库并从一个更合理的副本开始重新启动的选择,也没有必要担心不同的提交是不同的,我确信它们是相同的。

是否有蛮力命令擦除所有在哈希表以外所有相同的提交?

git bfg-repo-cleaner

2
推荐指数
1
解决办法
49
查看次数

在big data.table列中查找子字符串的第一个匹配项

我有一个大数据表,我想检查是否103a_foo存在.但是,大表中的文件名以不同的方式编写,因此我必须使用正则表达式.

dt = structure(list(myID = c("86577", "34005","34005", 
"194000", "30252", "71067"), 
filename = c("/scratch/tmpdir/12a_foo.mzXML.gz", 
"/scratch/tmpdir/103b_foo.XML.gz", "/scratch/tmpdir/103a_foo.XML.gz",
 "/scratch/tmpdir/103a_foo.XML.gz", 
"/scratch/tmpdir/100b_foo.XML.gz", "/scratch/tmpdir/108a_foo.XML.gz")),
 class = c("data.table", "data.frame"), 
row.names = c(NA, -5L), 
.Names = c("myID", "filename"))
Run Code Online (Sandbox Code Playgroud)

作为输出,我想要一个索引3,因为这是它第一次出现.我会使用grep('103a_foo', dt$filename)[1],但我希望搜索在第一次出现时停止,因为表很大(1000万行).

regex r stringr data.table

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

可以从行尾开始将一列分成几列吗?

我想知道是否有一些秘密论据允许separate从行尾应用?一些magic_argument

期望的输出如下:

library(dplyr)
df <- data.frame(x = c(NA, "a.b.b", "a.b.d", "b.c"))
df %>% separate(x, c("A", "B"), magic_argument = TRUE)
#>      A    B
#> 1 <NA> <NA>
#> 2    a.b    b
#> 3    a.b    d
#> 4    b    c
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

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

如何找到不完美的子串?

我有一个长度相等的子串列表,我想在大字符串中找到所有这些子串的位置。然而棘手的部分是我还应该找到不匹配数量有限的子字符串(也给出了不匹配的数量)。我以为我可以用正则表达式做到这一点,但我找不到方法。UPD:我使用的是 Python 2.7。

示例:输入字符串:s = 'ATGTCGATCGATGCTAGCTATAGATAAAA',输入子字符串为s0 = 'ATG',允许的不匹配数为 n = 1。我想要的是返回一个可迭代的,比如说一个列表,位置:[0,7,19,23,6],对应于“ATG”(两次),“ATA”的位置'(两次),'ATC' 相应地,因为其他不匹配的 3 聚体都不会出现在字符串中。

python regex python-2.7

0
推荐指数
1
解决办法
1807
查看次数