如何将包含chr向量的data.frame转换为带双数的向量?
数据如下:
> head(klima)
category Jan Feb Mar Apr Mai Jun Jul Aug Sep Oct Nov Dez
1 MaxTemperatur 2,8 4,7 9,5 13,4 18,2 21,6 24,3 23,7 19,1 13,8 7,3 3,5
2 MinTemperatur -3,6 -3,1 0,2 3,0 7,4 10,5 12,5 12,3 8,9 5,4 0,4 -2,3
3 Temperatur -0,4 0,7 4,7 8,1 12,7 16,0 18,3 17,7 13,7 9,3 3,7 0,6
4 NA <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
5 Niederschlag 60 55 73 82 119 111 106 116 99 88 76 74
6 NA <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
我想用dplyr整理这个数据集并收集。
klima.bern.tn <- klima.bern %>%
na.omit() %>%
filter(category=="Temperatur" |
category=="Niederschlag" |
category=="MaxTemperatur" |
category=="MinTemperatur" ) %>%
gather(month,value,-category,convert=TRUE)
这给出了以下数据结构:
> str(klima.tn)
'data.frame': 48 obs. of 3 variables:
$ category: chr "MaxTemperatur" "MinTemperatur" "Temperatur" "Niederschlag" ...
$ month : chr "Jan" "Jan" "Jan" "Jan" ...
$ value : chr "2,8" "-3,6" "-0,4" "60" ...
> head(klima.tn)
category month value
1 MaxTemperatur Jan 2,8
2 MinTemperatur Jan -3,6
3 Temperatur Jan -0,4
4 Niederschlag Jan 60
5 MaxTemperatur Feb 4,7
6 MinTemperatur Feb -3,1
现在我想将值数据集格式化为flollow,我在逗号后面得到3个逗号值。
> head(klima.tn)
category month value
1 MaxTemperatur Jan 2,800
2 MinTemperatur Jan -3,600
3 Temperatur Jan -0,400
4 Niederschlag Jan 60,000
5 MaxTemperatur Feb 4,700
6 MinTemperatur Feb -3,100
我怎样才能做到这一点?
感谢任何帮助。
此致 克里斯
答案 0 :(得分:0)
如果R可以计算as.numeric(myChars)
中表示的数值,那么简单myChars
通常可以解决问题。它足够聪明地意识到as.numeric("1.5") == 1.5
。
您添加了1.5
表示为"1,5"
的复杂功能,这让您感到困惑。这可以通过
newValues <- gsub(",", ".", klima.tn$value)
numericValues <- as.numeric(newValues)