2017-10-07 3 views
0

場合はネストされたステートメントがなぜネストされたIf文はデータフレームrを返しませんか?このコードで

x <- 4 
if(x == 4){ 
    t <- x + 1 
    if(t == 5){ 
    t + 2 
} 
} 
[1] 7 

を非常に細かい作業ですが、私は、データフレームに同じコードをしようとすると、何も結果がありません。

mydata_one <- data.frame(words = c("hello", "everyone")) 
mydata_two <- data.frame(words = c("my", "name")) 
if(length(mydata_one$word) == 2){ 
    big_data <- rbind(mydata_one, mydata_two) 
    if(length(big_data) > 3){ 
    big_data[1:3, 1] 
    } 
} 

私が探していた期待値:

[1] hello everyone my 
+0

データフレームは、単に特別なリストです。空の空白がない 'if(length(big_data)> 3){'がまだ '1'であるように、カラム数を変更していません。 – hrbrmstr

答えて

1

長は、データフレームでは動作しません。レコードの数を取得するには、代わりにnrowを使用します。

mydata_one <- data.frame(words = c("hello", "everyone")) 
mydata_two <- data.frame(words = c("my", "name")) 
if(length(mydata_one$word) == 2){ 
    big_data <- rbind(mydata_one, mydata_two) 
    if(nrow(big_data) > 3){ 
    big_data[1:3, 1] 
    } 
} 

出力: [1]みなさん、こんにちは私の
レベル:みんなこんにちは、私の名前

関連する問題