我不確定如何在沒有出現錯誤的情況下執行此操作。這是我的問題的一個簡單例子。R數據框由全局變量選擇
說我有這個數據幀DF
a b c d
1 2 3 4
2 3 4 5
3 4 5 6
然後,我有一個變量
x <- min(c(1,2,3))
現在我想你做以下
y <- DF[a == x]
但是當我嘗試引用到一些像「x」這樣的變量,我得到一個錯誤,因爲R正在我的數據框中尋找一列「x」。我得到「未定義的列選擇」錯誤
我該怎麼做我想在R做什麼?
我不確定如何在沒有出現錯誤的情況下執行此操作。這是我的問題的一個簡單例子。R數據框由全局變量選擇
說我有這個數據幀DF
a b c d
1 2 3 4
2 3 4 5
3 4 5 6
然後,我有一個變量
x <- min(c(1,2,3))
現在我想你做以下
y <- DF[a == x]
但是當我嘗試引用到一些像「x」這樣的變量,我得到一個錯誤,因爲R正在我的數據框中尋找一列「x」。我得到「未定義的列選擇」錯誤
我該怎麼做我想在R做什麼?
我認爲這是你要找的東西:
> x <- min(DF$a)
> DF[DF$a == x,]
a b c d
1 1 2 3 4
一個簡單的方法(避免變量 'x')將是這樣的:
> DF[which.min(DF$a),]
a b c d
1 1 2 3 4
或本:
> subset(DF, a==min(a))
a b c d
1 1 2 3 4
您可能會從閱讀R介紹中獲益,特別是在矩陣,數據框架和索引編制方面。你的a
是data.frame的一列,你的x
是一個標量。你在那裏比較不起作用。
也許你的意思
R> DF$a == min(c(1,2,3))
[1] TRUE FALSE FALSE
R> DF[,"a"] == min(c(1,2,3))
[1] TRUE FALSE FALSE
R>
告訴你,第一排配合而不是其他的了。用which()
包裝這個,可以給你指數。
「x」是一個例子,因爲我正在比較其他一些數據。你列出的第一部分是我不知道但需要的語法 – Matt 2010-05-22 19:51:23