如何在保持原始列表打印格式的同时从 R 中的列表中删除元素?

问题描述 投票:0回答:2

我在 Stack Overflow 和网上广泛搜索了如何从列表中删除特定元素,我已经部分弄清楚了如何执行此操作。但是,当我从这个示例列表中删除一个元素时,我失去了列表的原始格式。让我在下图中解释一下。如何删除“呼叫”元素及其后面的文本(“survdiff(公式= Surv(时间,状态)〜性别,数据=肺)”),同时保留原始格式?

示例代码贴在底部。

示例代码:

library(survival)
library(survmine)

fit <- survfit(Surv(time, status) ~ sex, data = lung)
surv_diff <- survdiff(Surv(time, status) ~ sex, data = lung)
surv_diff

str(surv_diff)

test <- surv_diff[-7] # trying to remove the "Call" element and all its text
r list formatting subset
2个回答
0
投票

当你删除那个元素时,你就删除了类属性。你可以像这样把它放回去:

class(test) <- "survdiff"

0
投票

我运行了你的示例代码,它给了我一个包含 6 个项目的列表(没有 pvalue)。所以在我的例子中,我正在研究第 6 个元素——你可能需要在第 7 个元素上工作。

# remove sixth list item
surv_diff[6] <- NULL

# look at the resulting list 
str(surv_diff)
List of 5
 $ n    : 'table' int [1:2(1d)] 138 90
  ..- attr(*, "dimnames")=List of 1
  .. ..$ groups: chr [1:2] "sex=1" "sex=2"
 $ obs  : num [1:2] 112 53
 $ exp  : num [1:2] 91.6 73.4
 $ var  : num [1:2, 1:2] 40.4 -40.4 -40.4 40.4
 $ chisq: num 10.3
 - attr(*, "class")= chr "survdiff"

 # print
 surv_diff
        N Observed Expected (O-E)^2/E (O-E)^2/V
 sex=1 138      112     91.6      4.55      10.3
 sex=2  90       53     73.4      5.68      10.3

  Chisq= 10.3  on 1 degrees of freedom, p= 0.001 

请记住,从对象中移除部件可能会在进一步处理它们时暗示某种类型的恶意行为。

© www.soinside.com 2019 - 2024. All rights reserved.