Rは奇妙な警告を「長さ> 1で、最初の要素だけが使用されます」 -- r フィールド 関連 問題

R gives strange warning “the condition has length > 1 and only the first element will be used”












2
vote

問題

日本語

Rでは、次の関数を書いています。コンマ区切り部分を含む文字列からトリミングされた文字列部分のベクトルを構築します。

<事前> <コード> # parse string into vector of trimmed comma-separated parts parseLine<-function(str) { inputVector = strsplit(str, ",") outputVector = c() for(s in inputVector) { s = gsub("^\s+|\s+$", "", s) if(nchar(s) > 0) outputVector = c(outputVector, s) } return(outputVector) }

この関数定義は正常に解析されます。 しかし私がこのように実行しているとき:

<事前> <コード> parseLine("a, b, c, d")

私は結果を得ますが、奇妙な警告も得られます:

<事前> <コード> [1] "a" "b" "c" "d" Warning message: In if (nchar(s) > 0) outputVector = c(outputVector, s) : the condition has length > 1 and only the first element will be used

と私の質問は次のとおりです。

  • それはどういう意味ですか?
  • それを取り除くために何ができる?
英語

I am trying to write following function in R: it will construct vector of trimmed string parts from a string which contains comma-separated parts.

# parse string into vector of trimmed comma-separated parts parseLine<-function(str) {     inputVector = strsplit(str, ",")     outputVector = c()     for(s in inputVector)     {         s = gsub("^\s+|\s+$", "", s)         if(nchar(s) > 0)             outputVector = c(outputVector, s)     }     return(outputVector) } 

This function definition is parsed successfully. But when I am executing it like this:

parseLine("a,   b, c, d") 

I get result but as well a strange warning:

[1] "a" "b" "c" "d" Warning message: In if (nchar(s) > 0) outputVector = c(outputVector, s) :   the condition has length > 1 and only the first element will be used 

And my questions are:

  • What does it mean?
  • What can I do to get rid of it?
</div
  
         
         

回答リスト

1
 
vote

更新:私は正しい解決策を見つけました。問題はstrSplit()がその出力としてリストを与えることです。

<事前> <コード> # parse string into vector of trimmed comma-separated parts parseLine<-function(str) { inputVector = strsplit(str, ",", TRUE)[[1]] # <<< here was the list outputVector = c() for(s in inputVector) { s = gsub("^\s+|\s+$", "", s) if(nchar(s) > 0) outputVector = c(outputVector, s) } return(outputVector) }
 

Update: I have found correct solution. The issue is that strsplit() gives a list as its output.

# parse string into vector of trimmed comma-separated parts parseLine<-function(str) {     inputVector = strsplit(str, ",", TRUE)[[1]] # <<< here was the list     outputVector = c()     for(s in inputVector)     {         s = gsub("^\s+|\s+$", "", s)         if(nchar(s) > 0)             outputVector = c(outputVector, s)     }     return(outputVector) } 
</div
 
 
   
   

関連する質問

2  空の文字列を含めるとRテーブルの列の順序  ( R table column order when including the empty string ) 
空の文字列を含む一連の値があります レベル(MyData $ Phone_Partner_Products) "" dont_know "" mays_intesting "> "not_inteenting" "very_not_inter...

8  R:シンプルなコマンドラインの作成ツール/キャプチャウィンドウ閉じるイベント  ( R building a simple command line plotting tool capturing window close events ) 
単純なコマンドラインプロットツールとして機能するスクリプト内でRを使用しようとしています。 NS。ユーザーパイプはCSVファイルでプロットを取得します。私はr罰金に到達して、さまざまな一時ファイルの機械加工を通して展示するためにプロットを取得することができます...

4  ASCIIキャラクターを表示します  ( Show an ascii character ) 
ブロックASCII文字█を表示したい(ASCIIコードは219)、 ターミナルに表示する方法は? winxp でRGUIを使用しています ...

10  RBIで変数をバインドします  ( Bind variables in r dbi ) 
Rの DBI パッケージで、バインド変数を使用するための機能を見つけていません。私はバインド変数について言われた文書(2002年からのオリジナルのビネット)を見つけました、「おそらくDBIはこの機能を実装することができます」はこれまでのところ、元に戻すことが...

12  Rの重複属性を持つ行を取り除きます  ( Get rid of rows with duplicate attributes in r ) 
私は次のような列を持つ大きなデータフレームを持っています。 <事前> <コード> ID, time, OS, IP そのデータフレームの各行は1つのエントリに対応します。一部の IDS 複数のエントリ(行)のデータフレーム内には存在します。それらの複数行を...

26  Rのベクトルで考える  ( Thinking in vectors with r ) 
私は、Rがベクトルとループを使って最も効率的に機能することを知っています。私は実際にこのようにコードを書くために自分自身を教えるのに苦労しています。私のコードを「ベクトル化」する方法についてのいくつかのアイデアが欲しいのですが。これは、10,000個の固有の状...

1  Rを使用してデータポイントの対数形式のデータポイントを推定するにはどうすればよいですか。  ( How can i estimate the logarithmic form of data points using r ) 
対数関数を表すデータ点を持っています R?を使ってこのデータを説明する関数を推定できるアプローチはありますか? ありがとう。 ...

191  あなた自身の関数を書くときにRの省略記号機能を使う方法?  ( How to use rs ellipsis feature when writing your own function ) 
R言語は、可変数の引数を取ることができる関数を定義するためのNIFTY機能を持っています。たとえば、関数 data.frame は任意の数の引数を取り、各引数は結果のデータテーブル内の列のデータになります。使用例: <事前> <コード> > data.fra...

5  複数の変数で変換された複数の列を追加する  ( Adding multiple columns transforming with multiple variables ) 
多くの変数から値を追加する方法? 2つの変数(列)を持っていた場合、私は単に行くことができます: <事前> <コード> summation.variable <- variable1 + variable2 またはそれがすべてデータフレームにあった場合:...

7  経済学を教えるための最高のプログラミング言語? [閉まっている]  ( Best programming language for teaching econometrics ) 
現在立つにつれて、この質問は私たちのQ&AMPにとって良いフィットではありません。フォーマット。私たちは事実、参考文献、または専門知識によって支持されることを期待していますが、この質問は...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有