加倍的时间

时间:2013-06-05 21:54:33

标签: r

我在计算R中癌症生长的倍增时间时遇到问题。该数据包含5年内对同一患者进行的多次扫描。然而,似乎在一年中多次扫描患者的情况。我想计算1次扫描和最后一次扫描的所有患者节点质量的倍增时间。

我已计算出最后一位患者节点的倍增时间,但我需要为所有患者提供倍增时间。

我使用过的代码:

Nod <- read.table("NoData270513.txt" , header = T) 


Nod$CoNo <- 10*Nod$StNo + Nod$LeNo

length(Nod$CoNo); length(unique (Nod$CoNo))

Nod$CoNo <- factor(Nod$CoNo)
Nod$CTDato <- as.Date(Nod$CTDato)

NodTyp1 <- rep(NA, length(unique(Nod$CoNo)))



i <- 0; i1 <- 0; i2 <- 0

for (j in unique(Nod$CoNo)) { temp <- Nod[Nod$CoNo==j, ]

i <- i + 1; i1 <- i2 + 1; i2 <- i2 + length(temp$CoNo)


NodTyp1[1:20]
vdt <- rep(NA, 1216)

if (length(temp$Age) > 1 )
{
    vdt[j] <- (as.numeric(temp$CTDato[length(temp$Age)]) - as.numeric(temp$CTDato[1])) * log(2)/log((temp$SDia[length(temp$Age)]/temp$SDia[1]))
}

1 个答案:

答案 0 :(得分:0)

如果我做对了,你唯一需要的就是创建一个获取数据filename并返回你需要的函数。然后只需遍历所有数据文件。

似乎是patern:

# declare function for one patient
calculate.doub.time <- function(filename){
   Nod <- read.table(filename , header = T) 
   # ...
   # ...
   # return what you want
}

# calculate all data files
all.data <- list.files() # assuming your working directory contains all data
result <- sapply(all.data, calculate.doub.time)

如果我误解了你想要达到的目标,请提前抱歉。