我对 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