我有一个df,其中有一个列,这是从csv读取时的一个因素。
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
答案 0 :(得分:2)
“ ATC_Count”中有一个,
,可以用sub
删除
as.integer(sub(",", "", ab$ATC_Count))
或使用tidyverse
library(tidyverse)
ab %>%
mutate(ATC_Count = as.integer(str_remove(ATC_Count, ",")))
或者使用parse_number
中的readr
ab %>%
mutate(ATC_Count = parse_number(ATC_Count))
关于将factor
转换为integer
时的不同数字,它是我们获得的整数存储值。转换的常用方法是
as.integer(as.character(ab$ATC_Count))
在此处不起作用,因为列值中包含,