【发布时间】:2023-03-21 20:42:01
【问题描述】:
我有一个因子列和一个数值列,我需要在其中找到两者之间的比率,然后对其进行格式化,使新变量具有两位小数。
我尝试使用 as.numeric(as.character()) 转换因子变量,然后将两者相除以找到比率,但结果是 NA 的向量。另外,我需要使用基本 r 代码。
x=as.numeric(as.character(TotalElectric)) / Power_from_renew
format(x, digits=2)
TotalElectric Power_from_renew
1 833 1313.400
2 4,525 8135.400
3 75,200 673.000
4 5,512 7391.300
5 105 2952.000
6 147,000 32523.800
7 7,763 2596.700
8 980 2743.400
9 259,400 37448.000
10 70,100 53853.000
11 24,300 2191.900
12 2,190 2948.400
13 13,086 2847.000
14 74,700 1183.100
15 1,002 2867.100
当我使用上面的代码时,我的结果是
Power_from_renew
1 NA
2 NA
3 NA
4 NA
5 NA
6 NA
我也尝试使用 gsub 格式化因子变量,但结果相同。
【问题讨论】:
-
as.numeric(gsub(",","",TotalElectric))(有或没有as.character取决于数据的真实性质(真实性质就目前而言是模棱两可的,看到dput(head(x))的输出会更清楚,或者无论你的变量被命名为什么......dput是关键。) -
即使我使用 gsub,结果仍然是 NAs 的变量。
-
我的建议仍然是:请提供明确的数据。根据我们所拥有的不完善数据,我的代码工作(作为
character字符串和factors)从类似数字的字符串中生成数字。