簡體   English   中英

根據因子(字符串)從R數據框中提取行

[英]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

嘗試使用subset功能。

這個網站提供了一個很好的參考: HowtoInR

my_data = subset(my_data, gender == "male")

這是一個老問題的答案,但我想分享我目前的做事方式,這樣的錯誤發生的次數要少得多。

答案是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM