【问题标题】:how to get a particular row from a data frame with if else如何使用 if else 从数据框中获取特定行
【发布时间】:2014-08-28 20:45:53
【问题描述】:

我有一个 ncol=1 的数据框 (df); nrow=2128。

这是数据结构:

208    INCL10
209    0.006882
210    INCL11
211    0.006780
212    INCL12
213    0.006590
214    INCL13
215    0.005693
216    INCL14
217    0.005225

所以我想自动知道 INCL10 的值是多少(即 0.006882)。 我有这个脚本:

for(i in 1:length(df[,1])) {if (df[i,1]=="INCL10") {INCL10=df[i+1,1]}  else CALENDARDATE="none" }

但是当我评估句子时,结果是"none"

我做错了什么?

【问题讨论】:

    标签: r if-statement


    【解决方案1】:

    你可以使用which来获取“INCL10”的索引,然后加1得到下一行。

    data <- data.frame(X = c("INCL10", ".006882", "INCL11", ".00678", "INCL12", "0.006590", "INCL13", "0.005693", "INCL14", "0.005225"))
    
    
    data[which(data$X == "INCL10") + 1, ]
    

    【讨论】:

    • 如果在一个表中我没有“INCL10”行,我应该使用什么?我正在使用else INCL10="none",但我认为用这种方法我不能
    • 使用它会返回“character(0)”。你希望它看起来像什么?
    • @Pau,你可以把这个解决方案修改为ifelse(any(data$X == "INCL10"), as.character(data[which(data$X == "INCL10") + 1, ]), "non")
    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    相关资源
    最近更新 更多