【发布时间】:2019-07-24 22:39:21
【问题描述】:
我正在使用 tapply 按样本 ID(SID) 组合表格。对于列表中的第一个样本,有 3 个测量值,但它仅显示为一个。
我有 4 件事需要传递到新表。首先是 SID。其次是具有该 SID 的所有测量值的面积平均值。第三是所有的距离。最后是测量次数。
cases_iTLS <- data.frame(unique(iTLS$SID))
colnames(cases_iTLS)[colnames(cases_iTLS)=="unique.iTLS.SID."] <- "SID"
cases_iTLS$SID <- factor(cases_iTLS$SID)
# Average of TLS on one slide for area
cases_iTLS$Area_iTLS <- tapply(iTLS$Area, iTLS$SID,FUN=mean)
# Average of TLS on one slide for distance
cases_iTLS$Distance_iTLS <- tapply(iTLS$Distance, iTLS$SID,FUN=mean)
# Number of measurements per SID
cases_iTLS$Count_iTLS <- tapply(iTLS$Region_Index, iTLS$SID,FUN=length)
SID Region_index Area Distance Type Location
112906 1 53531.53 71.982 iTLS intratumoral
112906 3 76809.61 97.384 iTLS intratumoral
112906 5 40937.30 9.643 iTLS intratumoral
112947 1 35071.66 2.067 iTLS intratumoral
112947 3 17979.88 36.319 iTLS
【问题讨论】:
-
您的问题是什么?您的代码有什么错误或不良结果?
-
第一个样本的输出是 Count_iTLS = 1。但在输入中有 3 行具有唯一的 Region_index。所需的输出应该是 Count_iTLS=3。此外,另外两个 tapply 给出的方法不正确。
-
没有结构和数据的例子很难回答。由于使用或不使用
NA,平均值是错误的吗? :How to pass na.rm as argument to tapply? -
@phili_b 我已将数据结构添加到主要问题中。数据中没有不适用的单元格
-
用
dput(myvariable)放在这里结构会更容易测试:)
标签: r