簡體   English   中英

R“錯誤:if中出現意外符號”

[英]R “Error: unexpected symbol in if”

在我的一生中,我無法在線上嘗試執行if語句的最基本問題找到答案。 任何幫助,不勝感激。

數據:

Id,mo.year,
123,201102
436,201101
129,201302

(兩個變量都是字符)

碼:

if(data$mo.year IN('201101','201102')) {data$year=1}

結果是:

Error: unexpected symbol in "if (data$mo.year IN"

if(data$mo.year IN('201201','201202')) {data$year=2}
if(data$mo.year IN('201301','201302')) {data$year=3}

產生相同的錯誤。

關於我所缺少的建議?

謝謝!

看起來您只需要ifelse ,即if語句的向量化版本:

Df <- data.frame(
  Id=c('123','436','129'),
  mo.year=c('201102','201101','201302'),
  stringsAsFactors=FALSE)
##
Df$year <- ifelse(
  Df$mo.year %in% c('201101','201102'),
  1,
  ifelse(
    Df$mo.year %in% c('201201','201202'),
    2,3))
##
> Df
   Id mo.year year
1 123  201102    1
2 436  201101    1
3 129  201302    3

假設您只是使用mo.year列的第四位數字來生成您的值,那么您還可以執行以下操作,這更加簡潔:

Df$year <- as.numeric(
  gsub(
    "(201)(\\d)(\\d+)","\\2",Df$mo.year))

暫無
暫無

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

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