在数据R中找不到列名时返回文本

在数据R中找不到列名时返回文本,r,function,if-statement,R,Function,If Statement,我试图创建一个函数,该函数接受数据帧和数据中的列名。如果在数据中找不到列名,则函数应返回“检查列名”。如果找到列名,则应在此处返回“(列名)文本(行名称)文本(列的最大值)” 到目前为止我所做的是 Function <- function(data,col) { data<-data[, col] if(is.na(col)) { print ("check column name") } else { print(paste(colnames(data), "text here"

我试图创建一个函数,该函数接受数据帧和数据中的列名。如果在数据中找不到列名,则函数应返回“检查列名”。如果找到列名,则应在此处返回“(列名)文本(行名称)文本(列的最大值)”

到目前为止我所做的是


Function <- function(data,col) {
data<-data[, col]
if(is.na(col)) {
print ("check column name")
} else {
print(paste(colnames(data), "text here", rownames(data), "text here", max(data))
}
}


但它们也不起作用。我也不知道如何打印值,比如在数据中找到列名时函数返回的文本中间的行和列名称。

您可以在%-/P>中使用<代码> %。
Function <- function(data, col) {
  if(!col %in% names(data)) {
    print ("check column name")
  } else {
    max_row <- which.max(data[, col])
    print(paste("Column:", col, "Row:", rownames(data)[max_row],
                "MaxValue:", data[max_row, col]))
  }
}

Function(iris, "test")
[1] "check column name"

Function(iris, "Sepal.Width")
[1] "Column: Sepal.Width Row: 16 MaxValue: 4.4"

函数非常感谢,现在“检查列名”功能完全符合我的要求!但是,当找到该列时,我仍然无法打印我想要的文本。colnames()是用于列名的正确命令,rownames()是用于行名的正确命令吗?@Joe是否要在显示max value的位置打印行名和列名?添加数据中存在列时的预期输出示例。我希望打印数据中存在的列的最大值。例如,对于函数(iris,“COL”),输出应该是“COL中最大的值在(这里的行名称)中,这是(这里的最大值)”。@Joe请参阅更新的答案。如果它回答了你的问题,请考虑在这个答案的左上方用刻痕标记它是正确的。
Function <- function(data, col) {
  if(!col %in% names(data)) {
    print ("check column name")
  } else {
    max_row <- which.max(data[, col])
    print(paste("Column:", col, "Row:", rownames(data)[max_row],
                "MaxValue:", data[max_row, col]))
  }
}

Function(iris, "test")
[1] "check column name"

Function(iris, "Sepal.Width")
[1] "Column: Sepal.Width Row: 16 MaxValue: 4.4"