0

R スクリプトを変更しようとしていますが、R の基本的な経験しかありません。

質問 1: 行: for (i in 1:nrow(x)). 整数 1 は実際に何をしますか? 値を 2 以上に変更すると、出力に大きな影響があるようです。

質問 2: 次のメッセージが表示されます。

"Error in if (p[2] > a + b * p[1]) { : 
  missing value where TRUE/FALSE needed"

. 一般的に、何が原因でしょうか?

どんな助けでも大歓迎です!


質問が編集されました:

散布図をプロットするためのデータフレームがあるとします。データフレームは次のように編成されます (CSV 形式)。

name ABC EFG
1    32  45
2    56  67
to, say 200 000 entries

最初に散布図を作成し、その後、alphahull を使用してデータセットの一部を A にサブセット化し、XYZ としてエクスポートします。これを行うためのスクリプト:

#plot first plot containing all data
plot(x = X$ABC,
y = X$EFG,
pch=20,
)

#subset data using ahull. choose 4 points on the plot
A <- ahull(locator(4, type="p", pch=20), alpha=10000) 

#exporting subset
XYZ <- {}
for (i in 1:nrow(X)) { if (inahull(A, c(X$ABC[i],X$EFG[i]))) XYZ <- rbind(X,X[i,])}

選択したサブセット内のデータ ポイントの数が大きすぎる場合、次のメッセージが表示されます: Error in if (p[2] > a + b * p[1]) { : Missing value where TRUE/FALSE needed

4

2 に答える 2

0

質問 1 - これは for ループです。行列またはデータ フレーム x の行ごとに 1 回実行されます (x が正確に何であるかはわかりません)。2 に変更すると、ループの発生回数が 1 回少なくなります。残りのコードがなければ、これ以上何も言えません。

質問 2 - コード全体を投稿できますか? どうやらその式を評価する必要があり、1 つ以上の値が欠落しています。

于 2013-08-15T02:52:05.013 に答える
0

データがあると言う x

set.seed(123) # for reproducibility

x<-as.data.frame(rnorm(10)) # generate random number and store it as dataframe

k<-2  #assign n as 2 
for (i in (1:nrow(x))){
cat("this is row",i,"\n")
show (k)
k<-k+i
}
show (k)
this is row 1 
[1] 2
this is row 2 
[1] 3
this is row 3 
[1] 5
this is row 4 
[1] 8
this is row 5 
[1] 12
this is row 6 
[1] 17
this is row 7 
[1] 23
this is row 8 
[1] 30
this is row 9 
[1] 38
this is row 10 
[1] 47
> show (k)
[1] 57
于 2013-08-15T03:09:52.593 に答える