R 如何为其中一个向量中的每个唯一值生成一个数据帧,显示两个向量之间的唯一对数?
首先,我为这个标题道歉。我真的不知道如何用一句话简明扼要地解释这个问题 我有一个数据框,其中每一行代表患者就诊的某个方面。一个患者可能有数千行,用于几十次医院就诊,而每次医院就诊可能有几行 一列是Medical.Record.Number,对应于患者ID,另一列是Patient.ID.Visit,对应于单个医院就诊的ID。我试图计算每个病人的住院次数 例如: 病历号 患者ID就诊R 如何为其中一个向量中的每个唯一值生成一个数据帧,显示两个向量之间的唯一对数?,r,R,首先,我为这个标题道歉。我真的不知道如何用一句话简明扼要地解释这个问题 我有一个数据框,其中每一行代表患者就诊的某个方面。一个患者可能有数千行,用于几十次医院就诊,而每次医院就诊可能有几行 一列是Medical.Record.Number,对应于患者ID,另一列是Patient.ID.Visit,对应于单个医院就诊的ID。我试图计算每个病人的住院次数 例如: 病历号 患者ID就诊 AAAXXX 1111 AAAXXX 1112 AAAXXX
AAAXXX 1111
AAAXXX 1112
AAAXXX 1113
阿兹 1114
阿兹 1114
阿阿巴 1115
阿阿巴 1116 将产生以下结果: 病历号 访问次数
AAAXXX 3
阿兹 1
阿阿巴 二, 我目前使用的解决方案如下,“数据”是我的数据帧:
#this function returns the number of unique hospital visits associated with the
#supplied record number
countVisits <- function(record.number){
visits.by.number <- data$Patient.ID.Visit[which(data$Medical.Record.Number
== record.number)]
return(length(unique(visits.by.number)))
}
recordNumbers <- unique(data$Medical.Record.Number)
visits <- integer()
for (record in recordNumbers){
visits <- c(visits, countVisits(record))
}
visit.counts <- data.frame(recordNumbers, visits)
#此函数返回与患者相关的唯一医院就诊次数
#提供的记录编号
countVisits在取出重复项后,这本质上看起来像一个table()
操作。首先是一些样本数据
#sample data
dd<-read.table(text="Medical.Record.Number Patient.ID.Visit
AAAXXX 1111
AAAXXX 1112
AAAXXX 1113
AAAZZZ 1114
AAAZZZ 1114
AAABBB 1115
AAABBB 1116", header=T)
这本质上类似于取出重复项后的table()
操作。首先是一些样本数据
#sample data
dd<-read.table(text="Medical.Record.Number Patient.ID.Visit
AAAXXX 1111
AAAXXX 1112
AAAXXX 1113
AAAZZZ 1114
AAAZZZ 1114
AAABBB 1115
AAABBB 1116", header=T)
这本质上类似于取出重复项后的table()
操作。首先是一些样本数据
#sample data
dd<-read.table(text="Medical.Record.Number Patient.ID.Visit
AAAXXX 1111
AAAXXX 1112
AAAXXX 1113
AAAZZZ 1114
AAAZZZ 1114
AAABBB 1115
AAABBB 1116", header=T)
这本质上类似于取出重复项后的table()
操作。首先是一些样本数据
#sample data
dd<-read.table(text="Medical.Record.Number Patient.ID.Visit
AAAXXX 1111
AAAXXX 1112
AAAXXX 1113
AAAZZZ 1114
AAAZZZ 1114
AAABBB 1115
AAABBB 1116", header=T)
有很多方法可以做到这一点,@MrFlick提供了一些非常有效的方法。就个人而言,我喜欢data.table
包。在大数据帧上速度更快,我发现逻辑比基本函数更直观。如果你在执行时间上有问题,我会检查一下
library(data.table)
med.dt <- data.table(med_tbl)
num.visits.dt <- med.dt[ , num_visits = length(unique(Patient.ID.Visit)),
by = Medical.Record.Number]
库(data.table)
有很多方法可以做到这一点,@MrFlick提供了一些非常有效的方法。就个人而言,我喜欢data.table
包。在大数据帧上速度更快,我发现逻辑比基本函数更直观。如果你在执行时间上有问题,我会检查一下
library(data.table)
med.dt <- data.table(med_tbl)
num.visits.dt <- med.dt[ , num_visits = length(unique(Patient.ID.Visit)),
by = Medical.Record.Number]
库(data.table)
有很多方法可以做到这一点,@MrFlick提供了一些非常有效的方法。就个人而言,我喜欢data.table
包。在大数据帧上速度更快,我发现逻辑比基本函数更直观。如果你在执行时间上有问题,我会检查一下
library(data.table)
med.dt <- data.table(med_tbl)
num.visits.dt <- med.dt[ , num_visits = length(unique(Patient.ID.Visit)),
by = Medical.Record.Number]
库(data.table)
有很多方法可以做到这一点,@MrFlick提供了一些非常有效的方法。就个人而言,我喜欢data.table
包。在大数据帧上速度更快,我发现逻辑比基本函数更直观。如果你在执行时间上有问题,我会检查一下
library(data.table)
med.dt <- data.table(med_tbl)
num.visits.dt <- med.dt[ , num_visits = length(unique(Patient.ID.Visit)),
by = Medical.Record.Number]
库(data.table)
医学博士