在数据 R 中找不到列名时返回文本
Posted
技术标签:
【中文标题】在数据 R 中找不到列名时返回文本【英文标题】:Return text when column name not found in data R 【发布时间】:2020-01-10 12:58:17 【问题描述】:我正在尝试创建一个函数,该函数接收数据框和数据中的列名。如果在数据中未找到列名,该函数应返回“检查列名”。如果找到了列名,它应该返回“(列名) text here (row name) text here (max value of the column)”。
到目前为止我所做的是
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))
但这行不通。
我认为问题在于不知道如何定义“如果在数据中找不到列名”。我也试过了
if(col==NA)
if(data==NA)
但它们也不起作用。我也不确定如何在数据中找到列名时函数应返回的文本中间打印值,例如行名和列名。
【问题讨论】:
【参考方案1】:你可以使用%in%
-
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 您是否要打印出现最大值的行名和列名?添加列存在于数据中时的预期输出示例。 我正在寻找打印数据中存在的列的最大值。因此,例如对于函数(iris,“COL”),输出应该是“在 COL 中,最大值在(此处的行名)中,即(此处的最大值)”。 @Joe 查看更新的答案。如果它回答了您的问题,请考虑使用此答案左上角的勾号将其标记为正确。以上是关于在数据 R 中找不到列名时返回文本的主要内容,如果未能解决你的问题,请参考以下文章
PSQLException:在此 ResultSet 中找不到列名 start_value