28

我是 R 的新手,我正在尝试做一些非常简单的事情。我已经加载了一个包含四列的 txt 文件,现在我想获得第二列的最小值。这是我拥有的代码:

 ## Choose the directory of the file

 setwd("//Users//dkar//Desktop")

 ## Read the txt file

 data<-read.table("export_v2.txt",sep="",header=T)

 str(data)

 ##  this command gives me the minimum for all 4 columns!!
 a<-apply(data,2,min)

实际上,如果我想做这样的事情: min (data(:,2)). 但我不知道如何在 R 中做到这一点。有什么帮助吗?

4

4 回答 4

50

如果您需要特定列的最小值

min(data[,2])

注意:R 会考虑NA最小值和最大值,因此如果您的列中有 NA,它们会返回:NA。要补救,请使用:

min(data[,2], na.rm=T)
于 2012-12-07T11:42:24.610 回答
12

如果您更喜欢使用列名,您可以这样做:

min(data$column_name)
于 2015-11-16T20:21:59.130 回答
6
df <- read.table(text = 
             "X  Y
             1  2  3
             2  4  5
             3  6  7
             4  8  9
             5 10 11",
             header = TRUE)


y_min <- min(df[,"Y"])

# Corresponding X value
x_val_associated <- df[df$Y == y_min, "X"]

x_val_associated

首先,您仅使用“Y”列上的 min 函数找到 Y min。请注意,返回的结果只是一个整数值。然后,要找到关联的 X 值,您可以将 data.frame 子集化为仅最小 Y 值所在的行,并仅提取“X”列。

您现在有两个整数值 X 和 Y,其中 Y 是最小值。

于 2018-07-15T18:14:40.883 回答
0

由于它是一个数字运算,我们应该先将其转换为数字形式。如果数据是因子数据类型,则无法执行此操作。
使用 检查列的数据类型str()

min(as.numeric(data[,2]))
于 2016-10-16T22:03:06.743 回答