R 为什么我一个人就能拿到纽约的产品?
考虑以下向量“tels”,其中包含来自“堪萨斯”、“德克萨斯”和“纽约”地区的电话号码R 为什么我一个人就能拿到纽约的产品?,r,R,考虑以下向量“tels”,其中包含来自“堪萨斯”、“德克萨斯”和“纽约”地区的电话号码 tels我们substr将“tels”命名,然后创建一个命名的向量,以匹配substr值,并将其替换为命名向量中的值 data.frame(PhoneNumbers = tels, state = setNames(c("KANSAS", "NEW YORK", "TEXAS"), c('510', '707', '650'))[substr(tels, 1, 3)]) #
tels我们
substr
将“tels”命名,然后创建一个命名的向量
,以匹配substr值,并将其替换为命名向量中的值
data.frame(PhoneNumbers = tels, state = setNames(c("KANSAS", "NEW YORK", "TEXAS"),
c('510', '707', '650'))[substr(tels, 1, 3)])
# PhoneNumbers state
#1 510-548-2238 KANSAS
#2 707-231-2440 NEW YORK
#3 650-752-1300 TEXAS
#4 510-674-3482 KANSAS
#5 510-853-5695 KANSAS
#6 510-882-9898 KANSAS
#7 650-555-6311 TEXAS
#8 707-885-6351 NEW YORK
#9 650-231-1234 TEXAS
#10 650-096-0023 TEXAS
#11 707-691-6763 NEW YORK
我们
substr
tels,然后创建一个命名的向量
,以匹配substr值,并用命名向量中的值替换它
data.frame(PhoneNumbers = tels, state = setNames(c("KANSAS", "NEW YORK", "TEXAS"),
c('510', '707', '650'))[substr(tels, 1, 3)])
# PhoneNumbers state
#1 510-548-2238 KANSAS
#2 707-231-2440 NEW YORK
#3 650-752-1300 TEXAS
#4 510-674-3482 KANSAS
#5 510-853-5695 KANSAS
#6 510-882-9898 KANSAS
#7 650-555-6311 TEXAS
#8 707-885-6351 NEW YORK
#9 650-231-1234 TEXAS
#10 650-096-0023 TEXAS
#11 707-691-6763 NEW YORK
您可以使用
因子
,标签为状态
,标签为前3位数字
data.frame(tels,
state = factor(substr(tels,0,3), c('510','650','707'), c('KANSAS','TEXAS','NEW YORK')))
tels state
1 510-548-2238 KANSAS
2 707-231-2440 NEW YORK
3 650-752-1300 TEXAS
4 510-674-3482 KANSAS
5 510-853-5695 KANSAS
6 510-882-9898 KANSAS
7 650-555-6311 TEXAS
8 707-885-6351 NEW YORK
9 650-231-1234 TEXAS
10 650-096-0023 TEXAS
11 707-691-6763 NEW YORK
您可以使用
因子
,标签为状态
,标签为前3位数字
data.frame(tels,
state = factor(substr(tels,0,3), c('510','650','707'), c('KANSAS','TEXAS','NEW YORK')))
tels state
1 510-548-2238 KANSAS
2 707-231-2440 NEW YORK
3 650-752-1300 TEXAS
4 510-674-3482 KANSAS
5 510-853-5695 KANSAS
6 510-882-9898 KANSAS
7 650-555-6311 TEXAS
8 707-885-6351 NEW YORK
9 650-231-1234 TEXAS
10 650-096-0023 TEXAS
11 707-691-6763 NEW YORK
您可以使用^510
、^650
和^707
查找第一个图案。为了方便地添加新列,我使用了dplyr
package
library(tidyverse) # has dplyr and stringr
# data set -------------------------------
(dirt <- data_frame(PhoneNumbers = c("510-548-2238", "707-231-2440", "650-752-1300", "510-674-3482", "510-853-5695", "510-882-9898", "650-555-6311", "707-885-6351", "650-231-1234", "650-096-0023", "707-691-6763")))
#> # A tibble: 11 x 1
#> PhoneNumbers
#> <chr>
#> 1 510-548-2238
#> 2 707-231-2440
#> 3 650-752-1300
#> 4 510-674-3482
#> 5 510-853-5695
#> 6 510-882-9898
#> 7 650-555-6311
#> 8 707-885-6351
#> 9 650-231-1234
#> 10 650-096-0023
#> 11 707-691-6763
使用此函数,可以添加新列:dplyr::mutate()
污垢%>%
变异(状态=查找区域(电话号码))
#>#A tibble:11 x 2
#>电话号码状态
#>
#>1510-548-2238堪萨斯州
#>2707-231-2440纽约
#>3650-752-1300德克萨斯州
#>4510-674-3482堪萨斯州
#>5510-853-5695堪萨斯州
#>6510-882-9898堪萨斯州
#>7 650-555-6311德克萨斯州
#>8 707-885-6351纽约
#>德克萨斯州9650-231-1234
#>德克萨斯州10 650-096-0023
#>11707-691-6763纽约
您可以使用^510
、^650
和^707
找到第一个图案。为了方便地添加新列,我使用了dplyr
package
library(tidyverse) # has dplyr and stringr
# data set -------------------------------
(dirt <- data_frame(PhoneNumbers = c("510-548-2238", "707-231-2440", "650-752-1300", "510-674-3482", "510-853-5695", "510-882-9898", "650-555-6311", "707-885-6351", "650-231-1234", "650-096-0023", "707-691-6763")))
#> # A tibble: 11 x 1
#> PhoneNumbers
#> <chr>
#> 1 510-548-2238
#> 2 707-231-2440
#> 3 650-752-1300
#> 4 510-674-3482
#> 5 510-853-5695
#> 6 510-882-9898
#> 7 650-555-6311
#> 8 707-885-6351
#> 9 650-231-1234
#> 10 650-096-0023
#> 11 707-691-6763
使用此函数,可以添加新列:dplyr::mutate()
污垢%>%
变异(状态=查找区域(电话号码))
#>#A tibble:11 x 2
#>电话号码状态
#>
#>1510-548-2238堪萨斯州
#>2707-231-2440纽约
#>3650-752-1300德克萨斯州
#>4510-674-3482堪萨斯州
#>5510-853-5695堪萨斯州
#>6510-882-9898堪萨斯州
#>7 650-555-6311德克萨斯州
#>8 707-885-6351纽约
#>德克萨斯州9650-231-1234
#>德克萨斯州10 650-096-0023
#>11707-691-6763纽约
我想要问题中提到的输出。我想要问题中提到的输出。