我有一个df,它有一列,当我从csv读取if时,它是一个因子。
Month_considered pct ATC_Count
<fct> <dbl> <fct>
1 Apr-17 54.9 198,337
2 May-17 56.4 227,681
3 Jun-17 58.0 251,664
4 Jul-17 57.7 251,934
5 Aug-17 55.5 259,617
6 Sep-17 55.7 245,588
7 Oct-17 56.6 247,051
8 Nov-17 57.6 256,375
9 Dec-17 56.9 277,784
10 Jan-18 56.7 272,818
11 2/1/18 59.1 266,277.00
> sapply(ab, class)
Month_considered pct ATC_Count
"factor" "numeric" "factor"
当我尝试将ATC_Count转换为整数时,我会得到以下输出,其中ATC_Count显示不同的值。这里可能出了什么问题。
ab$ATC_Count <- as.integer(ab$ATC_Count)
Month_considered pct ATC_Count
<fct> <dbl> <int>
1 Apr-17 54.9 36571
2 May-17 56.4 37325
3 Jun-17 58.0 37780
4 Jul-17 57.7 37781
5 Aug-17 55.5 37885
6 Sep-17 55.7 37682
7 Oct-17 56.6 37714
8 Nov-17 57.6 37855
9 Dec-17 56.9 38099
10 Jan-18 56.7 38060
11 2/1/18 59.1 37990
"ATC_Count"中有一个,
,可以用sub
删除
as.integer(sub(",", "", ab$ATC_Count))
或使用tidyverse
library(tidyverse)
ab %>%
mutate(ATC_Count = as.integer(str_remove(ATC_Count, ",")))
或使用readr
中的parse_number
ab %>%
mutate(ATC_Count = parse_number(ATC_Count))
关于factor
到integer
转换时的不同数字,我们得到的是整数存储值。通常的转换方式是
as.integer(as.character(ab$ATC_Count))
这在这里不起作用,因为在列值内存在CCD_