我有一個數據框,其中包含一系列與帳單ID相對應的六位數字的數字。以奇數開頭的ID對應於房屋投票,而具有偶數的ID對應於參議院投票。例如,我的變量應該是這樣的:僅匹配R中字符串中第一個數字的模式
var <- runif(20, 100000, 999999)
我卡在試圖找出我可以與該亞羣()命令用來分離與偶數開始值的grep()代碼和那些以奇數開頭的。有沒有人有什麼建議?謝謝!
我有一個數據框,其中包含一系列與帳單ID相對應的六位數字的數字。以奇數開頭的ID對應於房屋投票,而具有偶數的ID對應於參議院投票。例如,我的變量應該是這樣的:僅匹配R中字符串中第一個數字的模式
var <- runif(20, 100000, 999999)
我卡在試圖找出我可以與該亞羣()命令用來分離與偶數開始值的grep()代碼和那些以奇數開頭的。有沒有人有什麼建議?謝謝!
evenNo <- subset(var, trunc(var*1e-5) %% 2 == 0)
unevenNo <- subset(var, trunc(var*1e-5) %% 2 == 1)
您還可以使用is.even <- grepl('^[02468]', var)
var <- runif(20, 100000, 999999)
odds <- substr(var,1,1) %in% c("1", "3", "5", "7", "9")
evens <- substr(var,1,1) %in% c("2", "4", "6", "8")
var[odds]
var[evens]
或者如果它是一個數據幀:
df <- data.frame(var = runif(20, 100000, 999999),
outcome = rbinom(20, 1, .5)
)
odds <- df[substr(df$var,1,1) %in% c("1", "3", "5", "7", "9"),]
evens <- df[substr(df$var,1,1) %in% c("2", "4", "6", "8"),]
是的,這會做「呃。很簡單。 – 2014-11-24 16:33:03