r - 如何使用 lapply 转换列表中数据框的列数据类型?
问题描述
我有一个数据框列表allData
。每个数据框都有一个名为 的列idCode
。如何idCode
使用 lapply (或其他功能,如果可能)将类型更改为字符?
我已经尝试过了,但它只返回了所有“idCode”列的列表。allData
原始列表中没有任何变化。
lapply(allData, function(x) x$idCode <- as.character(x$idCode))
我也试过这个:
lapply(allData, function(x) {x$idCode <- as.character(x$idCode) x})
希望它会返回所有idCode
转换后的数据帧,所以我可以在一个新列表中再次将它们“缝合”在一起。但是,它给了我一个错误:unexpected symbol in "lapply(allData, function(x) {x$idCode <- as.character(x$idCode) x
.
有可能做到这一点lapply()
吗?或者其他一些功能也可以。
解决方案
您在这里有几个选择:
您可以只使用 for 循环并使用例如as.character()操作每个数据帧
for(i in 1:length(allData)){
allData[[i]]$idCode<-as.character(allData[[i]]$idCode)
}
或者你使用全局变量赋值'<<-'
lapply(X = 1:length(allData),FUN = function(x){
allData[[x]]$idCode<<-as.character(allData[[x]]$idCode)
return(NULL)
})
为了更改数据框中列的类型,您还可以使用函数class()
lapply(X = 1:length(allData),FUN = function(x){
class(allData[[x]]$idCode)<<-"character"
return(NULL)
})
推荐阅读
- php - 通过 PHP REST API 检索加密的 JSON
- ios - 具有多个组合属性的核心数据 NSFetchedResultsController sectionNameKeyPath
- javascript - 结合在同一选项卡中打开新页面时,JS OnClick 在 iOS 上不起作用
- git - Git 忽略对文件的本地更改
- javascript - 标题、图片、文本框
- lua - 简单的反AFK插件
- javascript - 在 JavaScript 中按 enter 而不是单击 submit 不起作用
- azure - Azure ServiceBus Lock Expired Exceptions under load
- android - Android 撰写动画(如水平进度指示器)
- android - StaggeredGridLayoutManager 列表滚动时的奇怪效果