[英]Extract rows from R data frame based on factors (strings)
很抱歉,如果這是重復的,但我似乎無法在SO上的任何其他地方找到這些信息,即使它看起來像是一個簡單的問題。 我有一個數據框,有幾列作為因素。 其中一些是整數,有些是字符串。 我想提取對應於特定因子的行。 例如,
my_data <- read.table(file = "my_data.txt", header = TRUE)
my_data[ my_data$age == 20, ]
這有效,但如果我再嘗試
my_data[ my_data$gender == "male", ]
這不會產生匹配。 我意識到它們不是一回事,因為檢查my_data$name[1]
給出了因子,而我正在檢查字符串。
我在這里做錯了什么想法?
干杯
數據樣本:大小年齡性別值1 20男性0.5 4 22女性0.7 3 14女性0.3
這是一個老問題的答案,但我想分享我目前的做事方式,這樣的錯誤發生的次數要少得多。
答案是data.table
包。 它為我節省了數百行代碼,並將繼續這樣做。 子集成為小菜一碟:
my_data <- data.table(my_data)
my_data[gender == "male" & age <= 20]
我可以根據需要.SD
盡可能多的條件,並使用.SD
將列作為參數傳遞給函數,如下所示:
my_data[gender == "male" & age <= 20, lapply(.SD, mean), by = c("nationality", "height")]
從現有列創建列更加簡單,甚至可以一次創建多個列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.