我正在研究HCUP数据,它在一个列中有一系列值,需要拆分成多列.以下是HCUP数据框供参考:
code label
61000-61003 excision of CNS
0169T-0169T ventricular shunt
Run Code Online (Sandbox Code Playgroud)
期望的输出应该是:
code label
61000 excision of CNS
61001 excision of CNS
61002 excision of CNS
61003 excision of CNS
0169T ventricular shunt
Run Code Online (Sandbox Code Playgroud)
我解决这个问题的方法是使用包splitstackshape并使用此代码
library(data.table)
library(splitstackshape)
cSplit(hcup, "code", "-")[, list(code = code_1:code_2, by = label)]
Run Code Online (Sandbox Code Playgroud)
这种方法会导致内存问题.有没有更好的方法来解决这个问题?
一些评论:
我正在处理医疗索赔数据,数据文件如下所示
claim_id status
abc123 P
abc123 R
xyz374 P
xyz386 R
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列作为标志,它基本上将由claim_id分组,并且如果相同的claim_id的状态包括"P"和"R".标志栏应包含"是"
claim_id status flag
abc123 P Yes
abc123 R Yes
xyz374 P No
xyz386 R No
Run Code Online (Sandbox Code Playgroud)
我对这个解决方案的方法是使用dplyr: -
data <-data1 %>%
group_by(claim_id)%>%
mutate(flag = ifelse(any(status == "P" | status == "R"),
"Yes",
as.character(status)))
Run Code Online (Sandbox Code Playgroud)
此方法需要较长时间,并且还会在标志列中将所有行标记为"是".
我有一个数据框,有两列(医院名称,类型).变量是字符变量.数据如下所示: -
hospital_name type
ABC rural
ABC rural
ABC urban
XYZ urban
XYZ urban
EFG rural
Run Code Online (Sandbox Code Playgroud)
我正在编写一个代码,该代码将按医院名称分组,并计算该组中每种类型的数量.接下来,创建一个名为type2的新列,该列将具有类型列中出现次数最多的值.期望的输出应该是: -
hospital_name type type2
ABC rural rural
XYZ urban urban
EFG rural rural
Run Code Online (Sandbox Code Playgroud)
我使用dplyr解决了这个问题,但是我收到了错误.这是我的解决方案: -
library("dplyr")
df<-df%>%group_by(hospital_name)%>%mutate(type2=names(which.max(table(type))))
Run Code Online (Sandbox Code Playgroud)
错误是: -
Error: incompatible types, expecting a character vector
Run Code Online (Sandbox Code Playgroud) 以下是原件 data.frame
ID Date Type
123 2011-Jan A
123 2011-Jan A
123 2011-Jan A
123 2011-Jan B
123 2011-Jan B
123 2011-Jan C
123 2011-Mar X
123 2011-Mar X
345 2011-Jan A
345 2011-Jan A
345 2011-Jan X
345 2011-Jan X
456 2011-Mar Y
789 2011-Mar z
Run Code Online (Sandbox Code Playgroud)
所需的输出有5个新列,它们将分别具有列类型(Type_1)的第1个最大计数,列类型的第2个最大计数(Type_2).以下是所需的输出
ID Date Type_1 Type_2 Type_3 Type_4 Type_5
123 2011-Jan A B C NA NA
123 2011-Mar X NA NA NA NA
345 2011-Jan A NA NA NA NA …Run Code Online (Sandbox Code Playgroud)