gsub 创建新变量
gsub to create new variables
我想从 R
中的 1 个变量创建 2 个变量。
我有以下加油站字符变量:
车站
Valero 1810 N Foster Rd & IH-10 E
我想从这个变量创建 2:station_id
和 address
station_id
瓦莱罗
地址
1810 N Foster Rd & IH-10 E
在我的数据集中,station
变量中的所有字符串都以单词开头(最多 3 个单词,例如:EZ Mart),所有地址都以数值开头。
过去几个小时我一直在尝试使用 gsub
来实现这个目标,但我做不到。
谢谢
Base R 解决方案:这适用于您提供的示例字符串。您需要测试这是否适用于您的其他案例。包含多个示例字符串会更好。
ss <- "Valero 1810 N Foster Rd & IH-10 E";
station_id <- trimws(gsub("(\w+\s+){1,3}(\d+.+)$", "\1", ss));
address <- gsub("(\w+\s+){1,3}(\d+.+)$", "\2", ss);
station_id;
#[1] "Valero"
address;
#[1] "1810 N Foster Rd & IH-10 E"
我想从 R
中的 1 个变量创建 2 个变量。
我有以下加油站字符变量:
车站
Valero 1810 N Foster Rd & IH-10 E
我想从这个变量创建 2:station_id
和 address
station_id
瓦莱罗
地址
1810 N Foster Rd & IH-10 E
在我的数据集中,station
变量中的所有字符串都以单词开头(最多 3 个单词,例如:EZ Mart),所有地址都以数值开头。
过去几个小时我一直在尝试使用 gsub
来实现这个目标,但我做不到。
谢谢
Base R 解决方案:这适用于您提供的示例字符串。您需要测试这是否适用于您的其他案例。包含多个示例字符串会更好。
ss <- "Valero 1810 N Foster Rd & IH-10 E";
station_id <- trimws(gsub("(\w+\s+){1,3}(\d+.+)$", "\1", ss));
address <- gsub("(\w+\s+){1,3}(\d+.+)$", "\2", ss);
station_id;
#[1] "Valero"
address;
#[1] "1810 N Foster Rd & IH-10 E"