我有一个像这样的数据框:
Keyword 1 2 3 4 5
a 0.7 NA NA 0.3 0.4
b NA NA 0.5 NA NA
c NA 0.2 NA NA 0.3
d NA NA NA 0.3 0.4
我想得到它,以便结果给我这个:
Keyword First Value
a 1 0.7
b 3 0.5
c 2 0.2
d 4 0.3
我该怎么做?
谢谢。
解决方案创造了奇迹。
如果我想要最后一个值以便结果如下所示怎么办:
Keyword Last Value
a 5 0.4
b 3 0.5
c 5 0.3
d 5 0.4
我不知道要更改哪个索引。
谢谢。
最佳答案
DF <- read.table(text="Keyword 1 2 3 4 5
a 0.7 NA NA 0.3 0.4
b NA NA 0.5 NA NA
c NA 0.2 NA NA 0.3
d NA NA NA 0.3 0.4
e NA NA NA NA NA", header=TRUE)
setNames(
data.frame(DF[,1],
t(apply(DF[-1], 1, function(x) {
ind <- which(!is.na((x)))[1]
c(ind, x[ind])
}))
), c("Keyword", "First", "Value"))
# Keyword First Value
#1 a 1 0.7
#2 b 3 0.5
#3 c 2 0.2
#4 d 4 0.3
#5 e NA NA
关于R:返回数据帧每一行的第一个元素和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26616226/