【发布时间】:2022-01-15 20:58:17
【问题描述】:
我想将数据框中的列从字符更改为数字。 我的数据框是一个 .txt 文件,有 12 列和 1000 行。 当我将 .txt 文件传递给 R 时,我的一列现在是字符。 我尝试使用
as.numeric(my_data$iw)
但我收到“警告消息:
强制引入的NAs
这里是数据框结构:
data.frame': 1000 obs. of 12 variables:
$ im : num 0 15396 16537 20252 17967 ...
$ iw : chr "20064.97" "7397.191" "18380.77" "14042.25" ...
$ r : num 5984 0 0 0 0 ...
$ am : num 0 42 33 38 24 62 27 38 0 29 ...
$ af : num 38 30 28 38 39 42 18 33 24 35 ...
$ a1c: num 0 1 1 1 1 0 0 1 0 1 ...
$ a2c: num 0 0 0 1 0 0 0 1 0 1 ...
$ a3c: num 0 0 0 0 0 0 0 1 0 0 ...
$ a4c: num 0 0 0 0 0 0 0 0 0 0 ...
$ a5c: num 0 0 0 0 0 0 0 0 0 0 ...
$ a6c: num 0 0 0 0 0 0 0 0 0 0 ...
$ a7c: num 0 0 0 0 0 0 0 0 0 0 ...
我可以改成gsub吗?
structure(list(im = c(0, 15395.61, 16536.74, 20251.87, 17967.04,
12686.43, 16833.22, 16919.34, 0, 20515.88, 17991.9, 15528.29,
16683.96, 14485.19, 17957.98, 19923.31, 13526.9, 16516.68, 16337.52,
12904.97, 17418.99, 12419.21, 14561.9, 12309.77, 21138.87, 0,
17315.74, 17762.09, 12678.82, 13883.37, 11140.66, 16502.91, 18293.78,
12533.36, 16536.61, 4336.741, 22449.17, 16532.1, 0, 15905.14,
0, 8542.03, 12589.29, 15154.76, 15441.59, 18575.05, 15915.47,
0, 15085.51, 16597.42, 15358.47, 22480.95, 10555.28, 21771.2,
22863.56, 15937.55, 12230.58, 17814.67, 7972.471, 10286.75, 15335.8,
10762.59, 18583.2, 12167.99, 21723.37, 15670.79, 13045.83, 13305.73,
14305.99, 10353.15, 4504.009, 10157.7, 15967.28, 23640.21, 15053.78,
21404.11, 8509.353, 15693.39, 9009.99, 17249.29, 9115.844, 16057.39,
14069.93, 0, 0, 16840.09, 0, 15289.29, 12223.93, 13048.58, 18524.13,
14344.22, 20658.66, 0, 0, 13984.69, 21636.72, 13969.12, 12919.83,
13214.16, 17066.98, 20060.25, 11414.15, 12907.53, 11289.97, 17600.97,
14741.77, 12089.57, 13603.85, 9330.662, 0, 16191.81, 12029.75,
12666.29, 8138.166, 10636.2, 22570.1, 12833.66, 12585.56, 20197.42,
12621.56, 19021.65, 9948.49, 25772.41, 15102.54, 19225.57, 11188.96,
11707.66, 9766.824, 16082.82, 17693.2......
为了读入 .txt 文件,我写道:
my_data <- read.table("project.txt", header=TRUE);
【问题讨论】:
-
检查
unique(my_data$iw)以确认值实际上是数字。警告消息表明某些值无法转换为数值,因此它们将转换为 NA。解决此问题的策略取决于您要如何处理非数字值。 -
嗨,玛丽安蒂!你能提供一个minimal reproducible example吗?包含数据样本非常重要:您可以在数据上使用
dput()来执行此操作。另外,请包含您用于加载数据的代码 -
它们不是数字。它们是字符。我想更改它们以便在功能中使用它们。所以他们不能是字符,因为我的功能不起作用..