【发布时间】:2015-10-23 12:19:17
【问题描述】:
我想知道R中是否有任何类似于cut函数但适用于字符串的函数?
我正在处理的代码是将有关美国各州的数据分配给一个名为 Region 的分类变量:有 4 个区域,Northeast、Midwest、South、West。存储每个数据的数据框将州名称存储在一个名为“state”的变量中,并以它的缩写形式:例如,“NY”代表纽约,“MS”代表密西西比州。需要将区域变量添加到数据框中,我目前正在执行以下操作(这是为了家庭作业,所以我想表明我已经有了一个解决方案,并且正在寻找一个可能更好的解决方案):
create.region <- function(state) {
northeast <- c("CT", "ME", "MA", "NH", "RI", "VT", "NJ", "NY", "PA")
midwest <- c("IL", "IN", "MI", "OH", "WI", "IA", "KS", "MN", "MO", "NE", "ND", "SD")
south <- c("DE", "DC", "FL", "GA", "MD", "NC", "SC", "VA", "WV", "AL", "KY", "TN", "MS", "AR", "LA", "OK", "TX")
west <- c("AZ", "CO", "ID", "MT", "NV", "NM", "UT", "WY", "AK", "CA", "HI", "OR", "WA")
region <- ifelse(state %in% northeast, "Northeast",
ifelse(state %in% midwest, "Midwest",
ifelse(state %in% south, "South",
ifelse(state %in% west, "West", NA ))))
return(region)
}
birth_data <- within(birth_data, region <- create.region(state))
我对 R 的了解还不是很多,而且我很关心我的代码的效率。过去我发现 cut 函数是一种以这种方式对数字数据进行分类的更简洁有效的方法,但它显然不适用于字符向量。是否有任何类似于 cut 的函数允许字符分配规则,而不仅仅是数字规则?
【问题讨论】:
标签: r performance