2
我痛苦新R.我有數據列表,我寫一個循環來找出哪些值超過一定數目更大:如何在列表中打印大於特定數字的值以及R中的行名稱?
for (i in listname){
if(i > x)
print(i)
}
我想爲印刷值還包括排名......我該怎麼做呢? 感謝您的耐心等待。
我痛苦新R.我有數據列表,我寫一個循環來找出哪些值超過一定數目更大:如何在列表中打印大於特定數字的值以及R中的行名稱?
for (i in listname){
if(i > x)
print(i)
}
我想爲印刷值還包括排名......我該怎麼做呢? 感謝您的耐心等待。
奇怪的是,當項目本身是迭代器時,名稱會丟失。如果你不是在該項目上的數量迭代,如預期print
作品:
for (i in 1:length(listname)){
if (listname[i] > x){
print(listname[i]) # value with name
}
}
一旦你瞭解到更多關於R,你可能會想,而不是使用要做到這一點在「量化」的方式,循環:
idx <- which(listname > x) # row numbers
listname[idx] # values with names
或與邏輯子集
gt_x<- listname > x # TRUE or FALSE
listname[gt_x] # values with names
示例:與
嘗試此listname <- 1:10
names(listname) <- letters[1:10]
x <- 4
idx <- which(listname > x) # row numbers
listname[idx] # values with names
# e f g h i j
# 5 6 7 8 9 10
非常感謝。這是有道理的,我可以明白爲什麼它會對我所做的(所有三種方式)起作用,但是當我用我的數據嘗試任何方法時,我仍然沒有得到名稱。 我創建我的列表通過綁定向量在一起,所以有3列和數千行。如果我做了你爲其中一個矢量所建議的循環,它會打印出名稱。有沒有辦法編寫代碼,以便我可以將它應用到整個列表並仍然可以獲取名稱? – hmg
沒問題。您可能想要提出一個單獨的問題。我會做'myfun < - function(z)z [which(z> x)]; lapply(DF,myfun)',假設你有一個data.frame ......如果不是'DF < - data.frame(your_mat)'將創建它。 – Frank