我创建一个名为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
答案 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"