从字符转换为数字

问题描述 投票:0回答:1

我正在尝试将数据集的一列从字符转换为数字。 这就是我的尝试

# Generate 'key' as the combo of 'countrycode' and 'year'
new_data$key = paste(new_data$countrycode, sprintf("%02.0f", new_data$year), sep = "")

在这里,根据上面的描述,我为面板数据集创建了一个新变量键,作为国家/地区代码(例如美国)和年份(例如 2010)的组合,结果是 USA2010。因此,新变量是一个字符。我希望将此变量设置为数字,并仍然保留标签,就好像它是一个字符一样。我尝试过:

# Generate 'key_id'
new_data$key_id = as.numeric(factor(new_data$key))

但是,key_id 只是一个数字序列。例如,USA2010 对应的 key_id 是 10500,而不是 USA2010。

我尝试过

names(new_data)[names(new_data) == "key"] <- "key_id"

但是不起作用

r database character panel
1个回答
1
投票

我想你只是想要

new_data$key_id = as.factor(new_data$key)

R 中的因子被编码为数字,但具有关联的“级别”,这将是原始字符串(这可能是一个不准确的描述,这只是我对它们的看法 - 请参阅here以获得更可靠的解释)。

© www.soinside.com 2019 - 2024. All rights reserved.