我有一个数据框,其中包含文章名称、每篇文章的总体样本数、药物的响应者数量和无响应者数量。总共有 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) 我有学生姓名、不同科目的分数、科目名称。我想在数据框中添加一列,其中包含每个学生得分最高的科目。这是数据:
Data['Subject with highest score'] = Data.groupby(['Names','Subject'])[['Scores']].transform(lambda x: x.max())
Run Code Online (Sandbox Code Playgroud) 我一直在使用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创建的是实际的列车数据,而不是索引。
那么如何使用这个函数获取测试数据呢?谢谢!
我有两个数据框。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 中仍然不适用。
我正在尝试绘制火山图,但收到此错误:
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 但没有帮助。
我编写了一个接受多个数字并将它们转换为整数列表的代码。但我得到的都是带有空格的。
例如:我输入为: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)
这会导致方括号被视为项目。
如何正确删除空格?