r - 根据其他数据框中的列值选择 R 数据框中的列
问题描述
我有两个数据框,如下所示。
#Dataframe 1
colname value
col1 0.45
col2 -0.2
col3 -0.4
col4 0.1
#Dataframe 2
col1 col2 col3 col4
1 5 9 5
45 29 43 9
34 33 56 3
2 67 76 1
我想要做的是首先选择数据框 1 中值 > 0.3 或值 < -0.3 的所有列。我想要的第二件事是从数据框 2 中选择与此条件匹配的所有列。所以 dataframe2 的 col1 和 col3 列应该被选择到一个新的 dataframe 中,如下所示。
col1 col3
1 9
45 43
34 56
2 76
我想到的解决方案是首先选择相关列,如下面的代码所示。
library(sqldf)
features = sqldf('select colname from dataframe1 where value > 0.3 or value < -0.3')
在此之后,在 for 循环中构建一个字符串,如下所示。并将其粘贴到sqldf
查询中以从 dataframe2 中选择正确的列。但是我不知道如何构建这个字符串。你们知道这一点或有其他解决方案吗?
stringValue = "col1, col3, col4"
sprintf("SELECT %s FROM dataframe2", stringValue)
解决方案
dataframe1
仅使用您当前的col1
并且col3
将被选中。
library(sqldf)
features = sqldf('select colname from dataframe1 where value > 0.3 or value < -0.3')
sqldf(sprintf("SELECT %s FROM dataframe2", paste0(features$colname, collapse = ", ")))
# col1 col3
# 1 1 9
# 2 45 43
# 3 34 56
# 4 2 76
数据
#Dataframe 1
dataframe1 <- read.table(text = 'colname value
col1 0.45
col2 -0.2
col3 -0.4
col4 0.1', header = T, sep = "")
#Dataframe 2
dataframe2 <- read.table(text = 'col1 col2 col3 col4
1 5 9 5
45 29 43 9
34 33 56 3
2 67 76 1', header = T, sep = "")
推荐阅读
- python - 哎呀。正确传递参数
- python - Python:使用 curses 库打印 ASCII 文本文件
- python - 在计算两个排序数组的中位数时,是否有较小的数组驱动二进制搜索?
- javascript - 如何在谷歌脚本中总结从今天开始的 7 天?
- swiftui - 如何在 SwiftUI 中设置自定义环境键?
- javascript - 在 Vuex 中更新状态?
- docker - 为什么我不能在 Dockerfile 中运行命令,但我可以在我的 Docker 容器中运行?
- excel - 基于范围的窗口计数和概率
- ios - 连接插座的 NS Unknown Key 异常
- networking - 如何确定未知网络上的 IPv4 设置?