Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/126.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_Dummy Variable - Fatal编程技术网

分类虚拟R

分类虚拟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

在一个庞大的美国股票数据集中,我有一个包含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/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