小编nou*_*use的帖子

从列名中的正则表达式创建向量

我有一个数据框,其中列代表物种.物种亲缘关系以列名的后缀编码:

Ac_1234_ AnyString

第二个下划线(_)后面的字符串表示物种隶属关系.我想根据等级相关性绘制一些网络,并且我想根据它们的物种隶属关系对物种进行着色,之后当我用库(qgraph)创建fruchtermann-rheingold图时.我以前通过使用name_suffix对df进行排序然后通过手动计算它们来创建向量来完成它:

list.names <- c("SG01", "SG02")
list <- vector("list", length(list.names))
names(list) <- list.names
list$SG01 <- c(1:12)
list$SG02 <- c(13:25)
str(list)
List of 2
 $ SG01                       : int [1:12] 1 2 3 4 5 6 7 8 9 10 ...
 $ SG02                       : int [1:13] 13 14 15 16 17 18 19 20 21 22 ...
Run Code Online (Sandbox Code Playgroud)

对于我正在使用的大数据集来说,这非常繁琐.问题是,我如何避免手动排序和计数,并根据后缀和数据框中的位置提取向量(或列表).我知道我可以使用后缀信息创建一个向量

indx <- gsub(".*_", "", names(my_data))
str(indx)
chr [1:29] 
"4" "6" "6" "6" "6" "6" "11" "6" "6" "6" "6" "6" "3" "18" …
Run Code Online (Sandbox Code Playgroud)

r

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

生成在R中组合字母和数字序列的字符串

如何在R中生成此向量:

x <- c("R11", "R12", "R13", "R21", "R22", "R23", "R31",....)直到R7xx一套六个字母(R, S, D, A, B, X)

等等?没有实际输入它.

r

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

删除 ggplot2 轴标题和标签中前导上标中的空格

也许我不正确,但在我看来,以上标开头的表达式中有一个不需要的空格:

df <- data.frame(treatment=as.factor(c("A", "B")), value=c(1,2))

labels <- c(expression(""^14~CH[4]),
            expression(""^14~CH[4]~"+"~"SO"[4]^{2-''}))

library(ggplot2)
ggplot(df, aes(treatment, value)) +
  geom_bar(stat="identity") +
  scale_x_discrete(labels=labels)
Run Code Online (Sandbox Code Playgroud)

我可以去Photoshop来减少上标14和“C”之间的空间,但也许plotmath中有办法?请注意,这不会发生在最后带有上标的第二个表达式中。在此输入图像描述

r ggplot2 plotmath

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

删除两列中具有重复因子水平组合的行

经过bind_rows()一些大的 data.frames 之后,我最终得到一个像这样的 data.frame:

tmp <- data.frame(Query=c("A", "B", "C", "D", "A"), target=c("D", "A", "A", "A", "B"), values=runif(5))
tmp
  Query target     values
1     A      D 0.06075322
2     B      A 0.43179750
3     C      A 0.32325309
4     D      A 0.26714620
5     A      B 0.96854999
Run Code Online (Sandbox Code Playgroud)

我需要删除之前在任一方向上出现过的包含Query和组合的所有行target(AxD 是 DxA 的重复项)。在示例中,所需的输出为(因为第 4 行是第 1 行的重复项,第 5 行是第 2 行的重复项)

tmp
      Query target     values
    1     A      D 0.06075322
    2     B      A 0.43179750
    3     C      A 0.32325309
Run Code Online (Sandbox Code Playgroud)

非常感谢!

r duplicates dataframe r-factor

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

ggplot2 v2 中的 geom_text 与主题(element_text):未知参数:人脸

这个例子工作正常:

library(ggplot2)
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
      theme(panel.border = element_blank(), panel.grid.major = element_blank(), 
            panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"),
            legend.title = element_text(size=12, face="bold"),
            axis.title.x=element_text(face="bold", vjust=0.1),
            axis.title.y=element_text(face="bold", vjust=0.4)) 
Run Code Online (Sandbox Code Playgroud)

在我自己的图中,“face”参数是有问题的:

ggplot()+
  #geom_point(data=sitescores2, aes(x=rda1, y=rda2, color=Dates), shape=17)+
  geom_segment(data=biplotscores2, aes(x=0, y=0, xend=rda1, yend=rda2), arrow=arrow(length=unit(0.2,"cm")), alpha=0.75, color="black") +
  geom_text(data=biplotscores2, aes(x=1.1*rda1, y=1.1*rda2,label=rownames(biplotscores2)), size=3, color="black", face="bold")+
  #xlab("rda1   (45.7% explained variance)")+
  #ylab("rda2   (19.3% explained variance)")+
  #annotate ("text", x = 0.5, y = -0.75, label = "Constrained Inertia 20.3%") +
  theme_bw()+
  theme(panel.border = element_blank(), panel.grid.major = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

删除向量列表中的零

我有一个包含排序整数的 36 个向量的列表,其中包括许多零。

List of 36
 $ R11: int [1:361] 241 240 239 349 238 237 236 235 234 233 ...
 $ R12: int [1:361] 287 286 285 350 284 283 282 281 280 279 ...
Run Code Online (Sandbox Code Playgroud)

我不知道如何从向量中删除零。我试过了lapply (list, list(list x!=0),但这并不成功。谢谢你。

r

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

用R符号连接R中的两个单元格

我想计算列表中成对镜像矩阵的均值和标准偏差,并为进一步的文本处理编写一个表:

mean_SG<- as.data.frame(lapply(list_SG, function(x) mean(x[upper.tri(x)])))
sd_SG <- as.data.frame(lapply(list_SG, function(x) sd(x[upper.tri(x)])))
write.table(t(rbind(round(mean_SG,3),round(sd_SG,3))), "SG.txt")
Run Code Online (Sandbox Code Playgroud)

我的想法是直接将mean_SG和sd_SG中的数值与正负符号±连接起来,然后用write.table将它写在一个列中.这可能在R?

这是一些数据:

SG <- structure(c(85, 84.016, 82.9, 79, 85.167, 83.467, 78.5, 83.051, 
80.064, 81.436, 79.94, 83.731, 83.468, 82.775, 83.294, 81.608, 
82.176, 84.138, 82.6, 85.325, 82.297, 81.546, 83.569, 84.561, 
87.039, 92.45, 86.35, 83.153, 84.447, 81.899, 81.972, 81.32, 
81.949, 82.101, 0.656, 0.966, 1.833, NA, 0.643, 0.459, 0.608, 
1.189, 1.024, 0.848, 1.207, 0.66, 0.757, 1.235, 0.872, 1.308, 
0.958, 1.151, 0.914, 1.302, 0.708, 0.79, 1.349, 0.799, 1.297, 
2.554, 0.55, 1.041, 1.216, 1.065, …
Run Code Online (Sandbox Code Playgroud)

r

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

在R中使用通配符拆分或替换字符串

我有以下向量:

a <- c("abc_lvl1", "def_lvl2")
Run Code Online (Sandbox Code Playgroud)

我基本上想分成两个向量: ("abc", "def")("lvl1", "lvl2).我知道如何用sub替换:

sub(".*_", "", a)
[1] "lvl1" "lvl2"
Run Code Online (Sandbox Code Playgroud)

我认为这可以转化为"在"_"之前搜索任意数量的任何字符,并且一无所获." 因此 - 我想 - 这应该给我另一个所需的矢量:

sub("_*.", "", a),但它只删除了主角:

[1] "bc_lvl1" "ef_lvl2"
Run Code Online (Sandbox Code Playgroud)

我在哪里陷入困境?这基本上等同于excel中的"text-to-columns"功能.

regex r

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

标签 统计

r ×8

ggplot2 ×2

dataframe ×1

duplicates ×1

plotmath ×1

r-factor ×1

regex ×1