小编Pro*_*oob的帖子

如何制作每个箱有两种颜色的条形图?

我有一个数据框,其中包含文章名称、每篇文章的总体样本数、药物的响应者数量和无响应者数量。总共有 9 篇文章:

Articles <- c("Nadeem Riaz", "David Braun","immotion150", "IMVIGOR210", "Alexander Lozano",
             "Van Allen", "Alexandra Pender", "David Lui", "Jae Cho")
Samples_number <- c(49, 311, 247, 298, 47, 39, 82, 121, 16)
With_Benefit <- c(26, 89, 168, 131, 27, 13,17,65, 5)
No_Benefit <- c(13, 102, 79, 167, 20, 26, 65, 56, 11)

MyData <- data.frame(Articles, Samples_number, With_Benefit, No_Benefit)
Run Code Online (Sandbox Code Playgroud)

我需要制作一个条形图,其中 x 轴上为文章名称,y 轴上为总体样本数,并为每个 bin 着色,例如,对于每篇文章,响应者为蓝色,非响应者为红色。

我构建了一个条形图,我只是不知道在填充段中输入什么:(这里我只是输入了 No_Benefit 列,但我知道这是一个错误的填充)

myplot <- ggplot(MyData, aes(x = Articles, y = Samples_number, fill= No_Benefit)) + theme_bw() + …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

根据其他列查找最大值

我有学生姓名、不同科目的分数、科目名称。我想在数据框中添加一列,其中包含每个学生得分最高的科目。这是数据:

输入数据为:

在此输入图像描述

输出数据(结果数据帧)将是:

在此输入图像描述

我的尝试(显然没有效果):

Data['Subject with highest score'] = Data.groupby(['Names','Subject'])[['Scores']].transform(lambda x: x.max())
Run Code Online (Sandbox Code Playgroud)

python pandas

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

R中的分层数据分割

我一直在使用caret::createDataPartition()以分层方式分割数据。现在我正在尝试我在堆栈中找到的另一种方法,即 ,splitstackshape::stratified()我对此感兴趣的原因是它允许根据我手动选择的功能进行分层,非常方便。

我在分割数据时遇到问题:

library(splitstackshape)

set.seed(40)
Train = stratified(Data, c('age','gender','treatment_1','treatment_2','cancers'), 0.75)
Run Code Online (Sandbox Code Playgroud)

这会产生训练集,但是如何获得测试集呢?我没明白。我createDataPartition一路累了:

INDEX = stratified(Data, c('age','gender','treatment_1','treatment_2','cancers'), 0.75)
Train = Data[INDEX , ]
Test = Data[-INDEX ,]
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为stratified创建的是实际的列车数据,而不是索引。

那么如何使用这个函数获取测试数据呢?谢谢!

r machine-learning caret splitstackshape

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

从另一个数据框中填充一个数据框的值

我有两个数据框。df1在我感兴趣的列中有一些 NA,并且df2有相同的列,但具有我需要的值。我想根据行名填充 df1 中的这些值(df2 中的行名在 df1 中找到)。

例如,df1 会是这样的:

              Age    Gender     
Patient_1      NA     Male  # Has NA
Patient_3      30     Male
Patient_66     45     Female
Patient_10     NA     Female  # Has NA
Patient_11     67     Female
Patient_23     NA     Male  # Has NA
Run Code Online (Sandbox Code Playgroud)

df2 包含相同的信息,但仅限于df1 中年龄列中具有NA的样本:

              Age    Gender
Patient_1     59      Male
Patient_10    80      Female
Patient_23    21      Male
Run Code Online (Sandbox Code Playgroud)

现在,如何为每个样本填充从 df2 到 df1 的年龄值?

我试过这个:

for(i in 1:length(df1$Age)){
  
  if(rownames(df1)[i] == rownames(df2)[i]){
    
    df1$Age[[i]] = df2$Age[[i]]
    
  }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为由于某种原因它只填充了值的子集,某些值在 df1 中仍然不适用。

r missing-data dataframe na

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

grid.Call(C_convert, x, as.integer(whatfrom), as.integer(whatto), 中的错误:视口的尺寸为零

我正在尝试绘制火山图,但收到此错误:

Error in grid.Call(C_convert, x, as.integer(whatfrom), as.integer(whatto),  : 
  Viewport has zero dimension(s)
Run Code Online (Sandbox Code Playgroud)

我从来没有遇到过这个问题,代码过去工作得很好。它基本上是根据标签的细胞火山图。我试图找出两组之间的差异。

p=c()

for (i in 1:nrow(scores.batch)){
  p[i] = wilcox.test(scores.batch[i,totaldata$Response=='Response'],scores.batch[i,totaldata$Response=='NoResponse'])$p.value
}
p.adj = p.adjust(p,method='fdr') 
lfc = log2(rowMeans(scores.batch[,totaldata$Response=='Response'])/rowMeans(scores.batch[,totaldata$Response=='NoResponse']))
set.seed(42)
DF.2 = data.frame(lfc, p, labels= rownames(scores.batch))
EnhancedVolcano(toptable = DF.2, lab=DF.2$labels, drawConnectors = TRUE,
                x='lfc',y='p',pCutoff = 0.5, FCcutoff = 0.25, ylim = c(0,7.5), xlim = c(-1.5,1.5))
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?我尝试重新启动 R 但没有帮助。

r

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

从整数列表中删除空格

我编写了一个接受多个数字并将它们转换为整数列表的代码。但我得到的都是带有空格的。

例如:我输入为:1,2,3,4,5(带逗号)。

我得到一份清单[1, 2, 3, 4, 5]

现在我只需要删除空格,但它不起作用,我需要它看起来像这样[1,2,3,4,5]。我尝试这样做:

numbers = input().split(',')

for i in range(0, len(numbers)):
    numbers[i] = int(numbers[i])
mylist = str(numbers).replace(' ','')
print(mylist)
Run Code Online (Sandbox Code Playgroud)

这会导致方括号被视为项目。

如何正确删除空格?

python list

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