我正在尝试将数据集的一列从字符转换为数字。 这就是我的尝试
# 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"
但是不起作用
我想你只是想要
new_data$key_id = as.factor(new_data$key)
R 中的因子被编码为数字,但具有关联的“级别”,这将是原始字符串(这可能是一个不准确的描述,这只是我对它们的看法 - 请参阅here以获得更可靠的解释)。