使用 grepl 对包含两列中某些文本的相同提及的数据框进行子集化
Using grepl to subset dataframe containing the same mentioning of some text in two columns
我正在处理一个包含两列的数据框 (account
),其中包含 "posting" IP 位置(在 city
列中)以及这些帐户当时的位置首次注册(在 register
列)。我正在使用 grepl()
对发布位置和注册位置均来自纽约州 (NY) 的行进行子集化。以下是部分数据和我对所需输出进行子集化的代码:
account <- data.frame(city = c("Beijing, China", "New York, NY", "Hoboken, NJ", "Los Angeles, CA", "New York, NY", "Bloomington, IN"),
register = c("New York, NY", "New York, NY", "Wilwaukee, WI", "Rochester, NY", "New York, NY", "Tokyo, Japan"))
sub_data <- subset(account, grepl("NY", city) == "NY" & grepl("NY", register) == "NY")
sub_data
[1] city register
<0 rows> (or 0-length row.names)
我的代码不起作用,返回了 0 行(而至少有两行应该符合我的选择标准)。我的代码出了什么问题?
在提出这个问题之前,我已经参考了 this previous thread。
函数 grepl
已经 returns 一个逻辑向量,所以只需使用以下内容:
sub_data <- subset(account,
grepl("NY", city) & grepl("NY", register)
)
通过使用 grepl("NY", city) == "NY"
之类的东西,您是在询问 R FALSE TRUE FALSE FALSE TRUE FALSE
中的任何值是否等于 "NY"
,这当然是错误的。
我正在处理一个包含两列的数据框 (account
),其中包含 "posting" IP 位置(在 city
列中)以及这些帐户当时的位置首次注册(在 register
列)。我正在使用 grepl()
对发布位置和注册位置均来自纽约州 (NY) 的行进行子集化。以下是部分数据和我对所需输出进行子集化的代码:
account <- data.frame(city = c("Beijing, China", "New York, NY", "Hoboken, NJ", "Los Angeles, CA", "New York, NY", "Bloomington, IN"),
register = c("New York, NY", "New York, NY", "Wilwaukee, WI", "Rochester, NY", "New York, NY", "Tokyo, Japan"))
sub_data <- subset(account, grepl("NY", city) == "NY" & grepl("NY", register) == "NY")
sub_data
[1] city register
<0 rows> (or 0-length row.names)
我的代码不起作用,返回了 0 行(而至少有两行应该符合我的选择标准)。我的代码出了什么问题? 在提出这个问题之前,我已经参考了 this previous thread。
函数 grepl
已经 returns 一个逻辑向量,所以只需使用以下内容:
sub_data <- subset(account,
grepl("NY", city) & grepl("NY", register)
)
通过使用 grepl("NY", city) == "NY"
之类的东西,您是在询问 R FALSE TRUE FALSE FALSE TRUE FALSE
中的任何值是否等于 "NY"
,这当然是错误的。