Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何为其中一个向量中的每个唯一值生成一个数据帧,显示两个向量之间的唯一对数?_R - Fatal编程技术网

R 如何为其中一个向量中的每个唯一值生成一个数据帧,显示两个向量之间的唯一对数?

R 如何为其中一个向量中的每个唯一值生成一个数据帧,显示两个向量之间的唯一对数?,r,R,首先,我为这个标题道歉。我真的不知道如何用一句话简明扼要地解释这个问题 我有一个数据框,其中每一行代表患者就诊的某个方面。一个患者可能有数千行,用于几十次医院就诊,而每次医院就诊可能有几行 一列是Medical.Record.Number,对应于患者ID,另一列是Patient.ID.Visit,对应于单个医院就诊的ID。我试图计算每个病人的住院次数 例如: 病历号   患者ID就诊 AAAXXX           1111 AAAXXX           1112 AAAXXX      

首先,我为这个标题道歉。我真的不知道如何用一句话简明扼要地解释这个问题

我有一个数据框,其中每一行代表患者就诊的某个方面。一个患者可能有数千行,用于几十次医院就诊,而每次医院就诊可能有几行

一列是Medical.Record.Number,对应于患者ID,另一列是Patient.ID.Visit,对应于单个医院就诊的ID。我试图计算每个病人的住院次数

例如:

病历号   患者ID就诊
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)
医学博士