小编ykl*_*ykl的帖子

使用ggplot2 [编辑]的初学者简单示例的森林图

我想用ggplot2创建一个森林图.

目标是创建一个包含名为X1,X2,X3,X4,X5和X6的6行的森林图.这些标签应出现在左侧.垂直虚线应出现在x = 1处.此外,在图的右侧,平均值后跟95%CI应出现在每一行.

我的数据具有以下平均值,较低的95%间隔和较高的95%间隔:

mean  <- c(1.29,0.76,2.43,1.68,1.22,1.7) 
lower <- c(0.84,0.50,1.58,1.1,0.8,1.11)
upper <- c(1.95,1.16,3.67,2.54,1.85,2.56)
Run Code Online (Sandbox Code Playgroud)

其中X1对应于1.29(0.84,1.95)等等.

我希望这不是一个问题,并希望这可以作为那些不熟悉R中的森林情节的人的指南,比如我自己.

plot r

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

ggplot2 轴标签中的斜体字

我希望使用ggplot2. 我想写这样的东西:“阿尔法-男性百分比”,其中阿尔法是斜体。

我在我的情节代码中尝试了以下内容:

ylab(expression(paste("The", italic("alpha"),"-male percentage"))
Run Code Online (Sandbox Code Playgroud)

然而“alpha”仍然不是斜体。有人可以帮忙吗?

r

6
推荐指数
0
解决办法
6935
查看次数

将字母转换为整个数据帧中的数字

我无法chartr()在我的数据框的所有列上应用该函数以将字母转换为数字.

我在单列上管理它,但我希望能够在整个数据框上完成它.以下是我的数据示例:

ID = c(1,2,3)
POS1 = c('AG','GC','TT')
POS2 = c('GT','CC','TC')
POS3 = c('GG','CT','AT')
DF = data.frame(ID,POS1,POS2,POS3)

DF$POS1X <- chartr('ACGT','1234',DF$POS1)

  ID POS1 POS2 POS3 POS1X
1  1   AG   GT   GG    13
2  2   GC   CC   CT    32
3  3   TT   TC   AT    44
Run Code Online (Sandbox Code Playgroud)

从代码中可以看出,我希望将A转换为1,将C转换为2,将G转换为3,将T转换为4.我有40多列,因此重复上述相同的命令40次以上将是不切实际的(特别是如果我比如说数百列,遇到同样的问题

ykl

r dataframe

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

R根据以前观察到的值创建列

我想创建一个新列,报告报告的col1值大于零,直到遇到大于零的新col1值(参见df2中的col2).即col1中的零值被大于零的观测值替换.

ID = c(1,1,1,1,1,1,1,1,2,2,2,2)
col1 = c(500,0,0,0,600,0,0,0,450,0,0,0)
df1 = data.frame(ID,col1)

ID = c(1,1,1,1,1,1,1,1,2,2,2,2)
col1 = c(500,0,0,0,600,0,0,0,450,0,0,0)
col2 = c(500,500,500,500,600,600,600,600,450,450,450,450)
df2 = data.frame(ID,col1,col2)
Run Code Online (Sandbox Code Playgroud)

这样做的任何方式?

r dataframe

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

根据其他列中至少一个变量的出现情况按组创建新列

考虑以下数据框:

ID <- c(1,1,1,2,2,3,3,3,3)
A <- c("No","No","Yes","Yes","Yes","No","No","No","No")
B <- c("Yes","Yes","Yes","Yes","Yes","No","No","No","No")
df <- data.frame(ID,A,B)
Run Code Online (Sandbox Code Playgroud)

我想创建 B 列,其中 A 列中至少出现一个“是”会导致 B 列中每个单独的 ID 仅有“是”值。我尝试了以下两种方法(我觉得我已经差不多了):

library(dplyr)
df <- df %>% 
  group_by(ID) %>% 
  mutate(B1=ifelse(A == "Yes", "Yes", "No")) # B1 is the new column for comparison
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给出了与 A 相同的列

df2 <- transform(df, B1= ave(A, ID, FUN=function(x) x[A == "Yes"]))
Run Code Online (Sandbox Code Playgroud)

产生错误消息:

1:在 x[...] <- m 中:要替换的项目数不是替换长度的倍数

非常感谢您的帮助。

r dplyr

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

标签 统计

r ×5

dataframe ×2

dplyr ×1

plot ×1