Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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 - Fatal编程技术网

R 将字符串转换为列名

R 将字符串转换为列名,r,R,我有一个函数,它根据给定的模型、数据矩阵和列名进行一些计算 但是,我在理解如何传递有关列名的信息时遇到了一些困难。我试过: var=as.name("IR2") summary(mat$var) 但它不起作用。有可能做我想做的吗?谢谢 要测试的代码: mat <- matrix(rnorm(20), ncol=2, nrow=10) colnames(mat) <- c("fy","IR2") mat是否仅使用DIMNAME命名列 mat <- matrix(rnorm(2

我有一个函数,它根据给定的模型、数据矩阵和列名进行一些计算

但是,我在理解如何传递有关列名的信息时遇到了一些困难。我试过:

var=as.name("IR2")
summary(mat$var)
但它不起作用。有可能做我想做的吗?谢谢

要测试的代码:

mat <- matrix(rnorm(20), ncol=2, nrow=10)
colnames(mat) <- c("fy","IR2")

mat是否仅使用DIMNAME命名列

mat <- matrix(rnorm(20), ncol=2, nrow=10, dimnames= list(c(1:10), c("fy","IR2")))

如果列名以前未知,可以通过以下方法调用它

mat[, "columnName"]
在您的情况下,如果您只想处理“fy”列,您可以将该列名称传递给您的函数并如上所述调用它

你基本上是在打电话

mat[,"fy"]
例如,假设我们想要编写一个函数,它采用矩阵和列名,并计算给定列的平均值(我们想要从头开始,因为这是一个示例)

#mat的评估结果如下
垫子
#fy IR2
#[1,]  1.0355858 -0.1065325
#[2,]  1.0415242 -0.7736924
#[3,] -0.7607343 -1.6289547
#[4,]  0.6743018 -0.4028445
#[5,]  1.2324244  0.4847683
#[6,]  0.2128944  1.1584937
#[7,]  0.9460752 -1.6287894
#[8,]  0.7093235  1.5833613
#[9,]  0.3015283  0.3296974
#[10,]  0.2002134  1.7815022
材料[,“fy”]
#这将返回一个向量,即fy列
#[1]  1.0355858  1.0415242 -0.7607343  0.6743018  1.2324244  0.2128944
#[7]  0.9460752  0.7093235  0.3015283  0.2002134

Colmean发现重复我所做的就是在SO搜索框中键入[r],然后键入你的问题标题,这是第二次点击。。。当然是你的。请在发布问题之前进行搜索。(我想这也在R-FAQ中。)我不认为它们是一样的。我愿意听理性的论证,而不仅仅是“我不这么认为”。在您的情况下,它应该是
摘要(mat[[var]])
。仅仅因为
[[
的结构在
摘要中使用,并不意味着它“不同”。甚至可能有50或100个这样的问题,关于如何使用“$”不起作用,而使用
[
[[
加上不带引号的符号都会起作用。
mat[,"fy"]
#mat is evaluated to be the following
 mat
 #          fy        IR2
 #[1,]  1.0355858 -0.1065325
 #[2,]  1.0415242 -0.7736924
 #[3,] -0.7607343 -1.6289547
 #[4,]  0.6743018 -0.4028445
 #[5,]  1.2324244  0.4847683
 #[6,]  0.2128944  1.1584937
 #[7,]  0.9460752 -1.6287894
 #[8,]  0.7093235  1.5833613
 #[9,]  0.3015283  0.3296974
 #[10,]  0.2002134  1.7815022

 mat[,"fy"]
 #this returns a vector, the column fy
 #[1]  1.0355858  1.0415242 -0.7607343  0.6743018  1.2324244  0.2128944
 #[7]  0.9460752  0.7093235  0.3015283  0.2002134

 colMean<-function(mat, columnName){
      mean(mat[,columnName])
}

colMean(mat, "fy")
#[1] 0.5593137