仅打印列表的前5个元素

时间:2017-04-06 13:06:35

标签: r

我创建一个名为df的数据框并为其指定列名。 然后我创建一个名为test_list的新列表。我遍历数据帧(df)并按顺序对它们进行排序。

现在,如何打印或提取列表中的前5个元素(test_fun)?

df<- data.frame(45,67,78,89,45,65,54,67,87) 
colnames(df) <- c("A","B","C","D","E","F","G","H","I")

test_list <- list()

for(i in 1:nrow(df))
{
  test_list[[i]] <- colnames(sort(df[i,c(1:9)], decreasing = TRUE))
}

我试过了,

test_list[[1]]

#gives output
#[1] "D" "I" "C" "B" "H" "F" "G" "A" "E"

test_list[c(1,2,3,4,5)]
#gives output
#[[1]]
#[1] "D" "I" "C" "B" "H" "F" "G" "A" "E"

#[[2]]
#NULL

#[[3]]
#NULL

#[[4]]
#NULL

#[[5]]
#NULL

但是,我需要

#output as
#D
#I
#C
#B
#H

2 个答案:

答案 0 :(得分:4)

使用head

head(test_list[[1]],5)
[1] "D" "I" "C" "B" "H"

答案 1 :(得分:0)

您格式化所需输出的方式,看起来您想要一个包含9个元素的列表,而不是包含一个元素的列表,该元素是具有9个值的向量。你能说出你更喜​​欢哪一个吗?如果是前者:

  for(i in 1:ncol(df))
  {
    test_list[[i]] <- colnames(sort(df[1,c(1:9)], decreasing = TRUE)[i])
  } 
head(test_list,5)
[[1]]
[1] "D"

[[2]]
[1] "I"

[[3]]
[1] "C"

[[4]]
[1] "B"

[[5]]
[1] "H"