2017-10-08 133 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「)' –

相關問題