mEv*_*ans 2 loops r subset which
对于一组诊断代码,我有一个超过2个月的急诊科访问的大矩阵"dt".列是"年龄","性别","日期","县","拉链","主观","位置","诊断"和"dt"; 尺寸为872344×9.
我想从这个矩阵中进行子集化,并创建一个新的矩阵,其中只包含"diag"列的数字介于800和849(所有列)之间的那些行.
我一直在搞乱构建一个循环并使用"which"或"if.else",但我遇到了一个心理障碍.看起来如果它只是一个我想要提取的诊断代码会更容易,但50个代码的系列使事情变得复杂......指向一个循环?有没有人有基于找到某些值的子集的想法?
这是我的开始(它不起作用):
dta = dt
b = 800:849
for (i in 1:length(b)) {
}
Run Code Online (Sandbox Code Playgroud)
dta = dt[dt[, 8] >= 800 & dt[, 8] <= 849, ]
Run Code Online (Sandbox Code Playgroud)
ETA:你确定这是一个矩阵而不是data.frame吗?如果是data.frame,您可以:
dta = dt[dt$diag >= 800 & dt$diag <= 849, ]
Run Code Online (Sandbox Code Playgroud)
鉴于你的列名,我怀疑你dt是一个data.frame,而不是一个矩阵; 你可以通过跑步确认的东西is.data.frame(dt).
如果是这种情况,过滤数据的简便方法是使用以下subset函数:
dta <- subset(dt, diag >= 800 & diag <= 849)
Run Code Online (Sandbox Code Playgroud)