Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中将字符串作为列名传递_R_Dataframe_Variables_Shiny - Fatal编程技术网

如何在R中将字符串作为列名传递

如何在R中将字符串作为列名传递,r,dataframe,variables,shiny,R,Dataframe,Variables,Shiny,现在我想使用r的值并选择一个数据框,因为我有一个名称如下的数据框 m ="jan" n = "5e" r = paste0("jan","5e","_results") "jan5e_results" 类似地,如何从这些数据帧中选择列名 e、 g 使用变量名如何选择数据框和列名,如 jan5e_results will have column name jan_var1 feb5e_results will have column name feb_var1 mar5e_result

现在我想使用r的值并选择一个数据框,因为我有一个名称如下的数据框

m ="jan"  
n = "5e"

r = paste0("jan","5e","_results")


"jan5e_results"
类似地,如何从这些数据帧中选择列名

e、 g

使用变量名如何选择数据框和列名,如

jan5e_results will have column name jan_var1
feb5e_results will have column name feb_var1
mar5e_results will have column name mar_var1
.
.
.

我问这个问题是因为我正在尝试在Shining中创建一个小实用程序,它将接受输入,并根据输入选择特定的数据框和特定的列。如果有更好的方法,请告诉我。

我们可以使用
get

m ="jan"  
n = "5e"
r = paste0("jan","5e","_results")
c = paste0(m,"var1")
r$c
get(r)
将返回名为
jan5e_results
的整个数据帧,并从中选择
col
列到子集

col= paste0(m,"_var1")
get(r)[col]

#  jan_var1
#1        1
#2        2
#3        3
#4        4
#5        5
数据

#  jan_var1  b
#1        1  6
#2        2  7
#3        3  8
#4        4  9
#5        5 10

jan5e_results您还可以将所有数据帧保存在一个列表中,然后像这样选择它们

jan5e_results <- data.frame(jan_var1 = 1:5, b = 6:10)
jan5e_results <- data.frame(jan_var1 = 1:5, b = 6:10)
# here you can not define jan5e_results without actually writing jan5e_results
这种方法的优点是也可以动态创建数据帧。我的意思是:通常,您需要实际键入数据帧名称来定义它们,例如

col= paste0(m,"_var1")
dflist[[r]][col]

#  jan_var1
#1        1
#2        2
#3        3
#4        4
#5        5

它不适用于as.character.default()中的SpatialPolygonsDataFrame
弹出错误:没有将此S4类强制为vector@newguy我不知道会出什么问题。你能添加一个可复制的例子吗?
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)