分类虚拟R
在一个庞大的美国股票数据集中,我有一个包含SIC代码的整数变量 我想创建一个虚拟变量,表示50人的主要群体,即耐用品为1,其他为0的变量 我试过密码:分类虚拟R,r,dummy-variable,R,Dummy Variable,在一个庞大的美国股票数据集中,我有一个包含SIC代码的整数变量 我想创建一个虚拟变量,表示50人的主要群体,即耐用品为1,其他为0的变量 我试过密码: data$durable <- as.integer(grepl(pattern = "50", x = data$sic)) data$durable使用除法或向左填充零,并检查前两个字母 code <- c(100, 102, 501, 5010) # approach 1 as.integer(as.integer(code
data$durable <- as.integer(grepl(pattern = "50", x = data$sic))
data$durable使用除法或向左填充零,并检查前两个字母
code <- c(100, 102, 501, 5010)
# approach 1
as.integer(as.integer(code/100) == 50)
# approach 2
as.integer(substring(sprintf("%04d", code), 1, 2) == "50")
code
增编:
解决这个问题有多种方法
我建议查看stringi包以进行字符串编辑
以及插入符号包-用于变量的简化和其他统计转换
library(readxl)
library(dplyr)
library(stringi)
data_sic <- read_excel("./sic_example.xlsx")
data_sic$temp1 <- stri_sub(data_sic$SIC,1,2)
data_sic <- mutate(data_sic, durable_indicator =
ifelse(temp1 == "50", 1, 0))
str(data_sic)
str(data_sic)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 6 obs. of 4 variables:
$ SIC : num 4955 4961 4991 5000 5010 ...
$ Industry Title : chr "HAZARDOUS WASTE MANAGEMENT" "STEAM & AIR-CONDITIONING SUPPLY" "COGENERATION SERVICES & SMALL POWER PRODUCERS" "WHOLESALE-DURABLE GOODS" ...
$ temp1 : chr "49" "49" "49" "50" ...
$ durable_indicator: num 0 0 0 1 1 1