r - 从 R 中的多个数据框中删除相同的列
问题描述
我正在尝试使用以下代码从 R 中的多个数据帧“df1”和“df2”中删除同一列“col3”,但我不知道如何将 lapply 函数的结果重新分配给数据帧。我错过了什么?任何帮助将不胜感激。
df1 <- data.frame(col1 = c(1:4), col2 = c("A","B","C","D"), col3 = c("H","I","J","K"))
df2 <- data.frame(col1 = c(11:14), col2 = c("L","M","N","O"), col3 = c("W","X","Y","Z"))
list_dfs <- list(df1,df2)
lapply(list_dfs, function(x) x[!(names(x) %in% c("col3"))])
解决方案
如果要将子集结果分配回原始数据帧,请使用以下命令创建命名列表:
list_dfs <- list(df1 = df1,df2 = df2)
#OR
#list_dfs <- dplyr::lst(df1, df2)
执行子集操作
list_dfs <- lapply(list_dfs, function(x) x[names(x) != "col3"])
使用将结果分配回原始数据框 list2env
list2env(list_dfs, .GlobalEnv)
推荐阅读
- scala - 为什么“未使用的导入”会成为 sbt 的致命编译错误?
- azure - 您如何使用 OAuth2 身份验证与 DevOps REST 服务 API - 服务到服务一起使用?
- nfs - rancher trident 存储集成 w/rancherOS 1.55
- javascript - Safari 上的 JavaScript > 时差计算
- r - 如何生成正态分布变量,然后使用 R 中的 $dt()$ 函数绘制学生分布?
- amazon-web-services - AWS Javascript SDK - startMedicalTranscriptionJob 不支持麦克风设备
- java - 将带有 JPanel 的鼠标侦听器添加到包含地球地图 (Java) 的 JFrame
- c# - 在c#中抓取时,有什么方法可以通过网页上的加载更多按钮?
- c - 检查 C 中“fgets”的输入
- java - 未收到 RabbitMQ 阻塞连接通知