有很多关于替换NA值的帖子.我知道可以用以下内容替换下表/框架中的NA:
x[is.na(x)]<-0
Run Code Online (Sandbox Code Playgroud)
但是,如果我想将其限制为仅某些列,该怎么办?让我给你看一个例子.
首先,让我们从数据集开始.
set.seed(1234)
x <- data.frame(a=sample(c(1,2,NA), 10, replace=T),
b=sample(c(1,2,NA), 10, replace=T),
c=sample(c(1:5,NA), 10, replace=T))
Run Code Online (Sandbox Code Playgroud)
这使:
a b c
1 1 NA 2
2 2 2 2
3 2 1 1
4 2 NA 1
5 NA 1 2
6 2 NA 5
7 1 1 4
8 1 1 NA
9 2 1 5
10 2 1 1
Run Code Online (Sandbox Code Playgroud)
好的,所以我只想将替换限制为列'a'和'b'.我的尝试是:
x[is.na(x), 1:2]<-0
Run Code Online (Sandbox Code Playgroud)
和:
x[is.na(x[1:2])]<-0
Run Code Online (Sandbox Code Playgroud)
哪个不起作用.
我的data.table尝试,在哪里y<-data.table(x),显然永远不会起作用:
y[is.na(y[,list(a,b)]), ]
Run Code Online (Sandbox Code Playgroud)
我想在is.na参数中传递列,但显然不起作用.
我想在data.frame和data.table中执行此操作.我的最终目标是在'a'和'b'中将1:2重新编码为0:1,同时保持'c'的方式,因为它不是逻辑变量.我有一堆列,所以我不想一个接一个地做.而且,我只想知道如何做到这一点.
你有什么建议吗?
我有一个survfit对象.对我t=0:50多年感兴趣的总结幸存者很容易.
summary(survfit, t=0:50)
Run Code Online (Sandbox Code Playgroud)
它给出了每个t的生存.
有没有办法解决每个t的危险(在这种情况下,每个t = 0:50从t-1到t的危险)?我想获得与Kaplan Meier曲线相关的危险的平均值和置信区间(或标准误差).
当分布适合时(例如type="hazard"in flexsurvreg),这似乎很容易做到,但我无法弄清楚如何为常规的幸存对象做这个.建议?
I am trying to replace every row's values in 2 columns with a vector of length 2. It is easier to show you.
First here is a some data.
set.seed(1234)
x<-data.frame(x=sample(c(0:3), 10, replace=T))
x$ab<-0 #column that will be replaced
x$cd<-0 #column that will be replaced
Run Code Online (Sandbox Code Playgroud)
The data looks like this:
x ab cd
1 0 0 0
2 2 0 0
3 2 0 0
4 2 0 0
5 3 0 0
6 2 0 0
7 0 0 …Run Code Online (Sandbox Code Playgroud) 我对上一篇文章有类似的挑战:如何通过向量来集成函数
我有一个函数,我想对曲线下的面积进行积分。
一、【生存】功能:
surv <- function(x,score) exp(-0.0405*exp(score)*x) # probability of survival
Run Code Online (Sandbox Code Playgroud)
score来自风险计算器,它调整生存估计。患者有不同的分数,例如:
score <- c(0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1) # 7 different scores
Run Code Online (Sandbox Code Playgroud)
surv如果我们有一个特定的时间点x,计算所有 7 名患者的时间很容易:
surv(5, score) # Survival to year 5
[1] 0.7161497 0.6914399 0.6651219 0.6371998 0.6077026 0.5766890 0.5442516
Run Code Online (Sandbox Code Playgroud)
但是要获得种群的平均存活率或个体的预期存活率,我需要计算曲线下的面积,其中曲线由函数给出surv。我需要计算x=0和限制下的面积x=Inf。我需要为所有 7 个(在本例中)患者执行此操作。
我引用的另一篇 stackoverflow 帖子也有类似的问题。目前尚不清楚该解决方案是否可以帮助我。我在下面介绍:
integrate(Vectorize(fun_integrate,vectorize.args='x'), upper = 3, lower = -3, vec = rnorm(100),subdivisions=10000)
Run Code Online (Sandbox Code Playgroud)
fun_integrate 是要集成的功能
vectorize.args 是要向量化并传递给 fun_integrate 的参数
vec 是作为要传递到 fun_integrate 的参数的值的向量 …