r - 如何在R中将字符串作为列名传递
问题描述
m ="jan"
n = "5e"
r = paste0("jan","5e","_results")
"jan5e_results"
现在我想使用 r 的值并选择一个数据框,因为我的数据框的名称如下
jan5e_results
feb5e_results
mar5e_results
.
.
.
同样,如何从这些数据框中选择列名?
例如
jan5e_results will have column name jan_var1
feb5e_results will have column name feb_var1
mar5e_results will have column name mar_var1
.
.
.
使用变量名如何选择数据框和列名,例如
m ="jan"
n = "5e"
r = paste0("jan","5e","_results")
c = paste0(m,"var1")
r$c
我问这个是因为我正在尝试制作一个闪亮的小实用程序,它将接受输入,并基于此我需要选择特定的数据框和特定的列。如果有更好的方法让我知道。
解决方案
您还可以将所有数据框保存在列表中,然后像这样选择它们
col= paste0(m,"_var1")
dflist[[r]][col]
# jan_var1
#1 1
#2 2
#3 3
#4 4
#5 5
这种方法的优点是您也可以动态创建数据框。我的意思是:通常,您需要实际输入数据框名称来定义它们,例如
jan5e_results <- data.frame(jan_var1 = 1:5, b = 6:10)
# here you can not define jan5e_results without actually writing jan5e_results
但是使用列表,您可以简单地创建具有您想要在这样的列表中给出的名称的数据框
dflist[[r]] <- data.frame(matrix(rnorm(length(somevariable)), ncol= ncol(somedataframe)))
为了能够在此处重现整个代码,包括您问题中的变量
# deciding what elements to choose
r = paste0("jan","5e","_results")
m = "jan"
col = paste0(m,"_var1")
# vector with dataframe names
dfnames = paste0(c("jan", "feb", "mar"), "5e", "_results")
# creating an empty list
dflist = vector("list", length(dfnames))
# naming the list
names(dflist) = dfnames
# save one of the dataframes to list
dflist[[r]] = data.frame(jan_var1 = 1:5, b = 6:10)
推荐阅读
- python - plotly dash 将图像添加到 dcc.Tabs,根据用户输入进行更新
- javascript - 将嵌入消息编辑为简单文本 discord.js
- c++ - 从 C++ 字符串中删除元音
- c# - 有没有办法将数组中的数据保存到文本文件中
- python - 每次运行程序时如何创建新文件?
- mysql - 需要帮助过滤表格中特定年份的数据,但日期定义为 varchar。如何编写我的联接查询?
- delphi - 读取字符串常量是线程安全的吗?
- python - 二维数组python中的邻居
- python - 如何删除命令行缓冲
- reactjs - 如何从功能组件 React 中的 react-select 中获取价值