簡體   English   中英

R中的條件顯示值

[英]Conditional displaying values in R

我想看看哪些值存在特定的輸入問題,但是我做得不好。 例如,我需要在屏幕上打印列“ c”中的值,但要以“ b”中給定值的條件為條件,其中[b == 0]。 最后,我需要為條件為真的用戶添加一個新字符串。

 df<- structure(list(a = c(11.77, 10.9, 10.32, 10.96, 9.906, 10.7, 
 11.43, 11.41, 10.48512, 11.19), b = c(2, 3, 2, 0, 0, 0, 1, 2, 
 4, 0), c = c("q", "c", "v", "f", "", "e", "e", "v", "a", "c")), .Names = c("a", 
 "b", "c"), row.names = c(NA, -10L), class = "data.frame")

我嘗試了一下但沒有成功:

if(df[b]==0){
print(df$c)
}


if((df[b]==0)&(df[c]=="v")){
df[c] <-paste("2")
}

感謝您的幫助。

正確的語法類似於df[rows, columns] ,因此您可以嘗試:

df[df$b==0, "c"]

您可以使用ifelse完成更改值:

df$c <- ifelse(df$b==0 & df$c=="v", paste(df$c, 2, sep=""), df$c)

這有幫助嗎?

rows <- which(df$b==0)
if (length(rows)>0) {
  print(df$c[rows])
  df$c[rows] <- paste(df$c[rows],'2')
  ## maybe you wanted to have:
  # df$c[rows] <- '2'
}

有幾種方法可以在R中對數據進行子集化,例如:

df$c[df$b == 0]
df[df$b == 0, "c"]
subset(df, b == 0, c)
with(df, c[b == 0])
# ...

要有條件地添加另一列(此處為TRUE / FALSE):

df$e <- FALSE; df$e[df$b == 0] <- TRUE
df <- transform(df, c = ifelse(b == 0, TRUE, FALSE))
df <- within(df, e <- ifelse(b == 0, TRUE, FALSE))
# ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM