2017-10-08 41 views
0

如果变量名称包含任何短语“idx”,我想创建一个等于1的新变量created_idx_var, ,“Idx”,“indx”,“Indx”,“index”,“Index”,“etf”,“ETF”或变量索引是否为“是”。如果变量名称包含特定短语,需要在R中创建一个虚拟变量

我刚开始学习R.我的第一步是消除数据集并只保留股票基金。然后,我想创建一个标志,看看基金是否是指数基金。我在网上搜索,但找不到任何东西。

一些样本数据: enter image description here

这是到目前为止我的代码。

library(readxl) 
mydata <- read_excel("C:/category.xlsx",sheet = 1) 
utils::View(mydata) 
mydata <- subset(mydata, global_group=="Equity") 
+0

你可以分享一些代码(即使代码不起作用),以便更容易想象你在做什么吗? –

+0

请提供一个最小的,可重现的例子。请参阅[这里](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)以供参考。 – www

+0

请看'%in%' – Wen

回答

0

假设你有值的向量:

x = c("idx", "a", "b","c", "Index") 

然后,你可以为你所提到的具有1如果任何字符串从列表(idx|Idx|indx|Indx|index|Index|etf|ETF)0否则匹配创建一个二元矢量

result = sapply(x, function(x) ifelse(grepl("idx|Idx|indx|Indx|index|Index|etf|ETF", x) == 1, 1, 0)) 
+1

不需要'ifelse()'。您可以简单地执行'+ sapply(x,function(x)grepl(“idx | Idx | indx | Indx |索引|索引| etf | ETF”,x))'或'+ stringi :: stri_detect_regex(x,“idx | IDX | INDX | INDX |首页|首页| ETF | ETF“)' –

相关问题