簡體   English   中英

R 中的編程:將列數據類型從字符(帶 $)更改為數字

[英]Programming in R: Change column data type from character (with $) to numeric

我正在清理一個數據框以在 R 中進行分析。 其中一列包含變量“price”,它位於帶有 $ 符號的字符(chr)中。 我需要數字(dbl)。

下面是我得到的代碼。 當我檢查表格時,行將替換為“N/A”。 請讓我知道出了什么問題以及是否有更好的代碼。 謝謝!

rental_df <- rental_df %>%
       mutate(location = sub(".*in ", "", location)) %>%
       price_1 = mutate_at(price, as.numeric) %>% 
       clean_names()

清潔前

清潔后

您可以使用gsub替換美元符號。

library(tidyverse)

set.seed(1)

rental_df <- tibble(
  location = rep(c("A", "B", "C", "D", "E"), 200),
  price = paste0("$", round(runif(1000, min = 2000, max = 4000)))
)
head(rental_df, 5)
#> # A tibble: 5 x 2
#>   location price
#>   <chr>    <chr>
#> 1 A        $2531
#> 2 B        $2744
#> 3 C        $3146
#> 4 D        $3816
#> 5 E        $2403
rental_df %>%
  mutate(price = as.numeric(gsub("[$]", "", price))) %>%
  head(. , 5)
#> # A tibble: 5 x 2
#>   location price
#>   <chr>    <dbl>
#> 1 A         2531
#> 2 B         2744
#> 3 C         3146
#> 4 D         3816
#> 5 E         2403

sub也可以工作,因為應該只有一個美元符號,你可能只是缺少方括號。

rental_df %>%
  mutate(price = as.numeric(sub("[$]", "", price))) %>%
  head(. , 5)
#> # A tibble: 5 x 2
#>   location price
#>   <chr>    <dbl>
#> 1 A         2531
#> 2 B         2744
#> 3 C         3146
#> 4 D         3816
#> 5 E         2403

我確定您已經檢查過,但順便確保sub在修改location時執行您期望的操作。 sub替換第一個實例,而gsub替換所有實例。

reprex package (v2.0.1) 於 2021 年 12 月 3 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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