[解決済み] Rでsplit関数を使用する
2022-02-15 05:02:49
質問
私は3つの小さなデータセットをシミュレートしようとしています。
x1
,
x2
,
x3
,
x4
,
trt
と
IND
.
しかし、Rで"split"を使ってシミュレーションデータをINDで分割しようとすると、Warningメッセージが表示され、出力は正しいのです。どなたか、私のRコードで何が間違っていたのか、ヒントをいただけないでしょうか?
# Step 2: simulate data
Alpha = 0.05
S = 3 # number of replicates
x = 8 # number of covariates
G = 3 # number of treatment groups
N = 50 # number of subjects per dataset
tot = S*N # total subjects for a simulation run
# True parameters
alpha = c(0.5, 0.8) # intercepts
b1 = c(0.1,0.2,0.3,0.4) # for pi_1 of trt A
b2 = c(0.15,0.25,0.35,0.45) # for pi_2 of trt B
b = c(1.1,1.2,1.3,1.4);
##############################################################################
# Scenario 1: all covariates are independent standard normally distributed #
##############################################################################
set.seed(12)
x1 = rnorm(n=tot, mean=0, sd=1);x2 = rnorm(n=tot, mean=0, sd=1);
x3 = rnorm(n=tot, mean=0, sd=1);x4 = rnorm(n=tot, mean=0, sd=1);
###############################################################################
p1 = exp(alpha[1]+b1[1]*x1+b1[2]*x2+b1[3]*x3+b1[4]*x4)/
(1+exp(alpha[1]+b1[1]*x1+b1[2]*x2+b1[3]*x3+b1[4]*x4) +
exp(alpha[2]+b2[1]*x1+b2[2]*x2+b2[3]*x3+b2[4]*x4))
p2 = exp(alpha[2]+b2[1]*x1+b2[2]*x2+b2[3]*x3+b2[4]*x4)/
(1+exp(alpha[1]+b1[1]*x1+b1[2]*x2+b1[3]*x3+b1[4]*x4) +
exp(alpha[2]+b2[1]*x1+b2[2]*x2+b2[3]*x3+b2[4]*x4))
p3 = 1/(1+exp(alpha[1]+b1[1]*x1+b1[2]*x2+b1[3]*x3+b1[4]*x4) +
exp(alpha[2]+b2[1]*x1+b2[2]*x2+b2[3]*x3+b2[4]*x4))
# To assign subjects to one of treatment groups based on response probabilities
tmp = function(x){sample(c("A","B","C"), 1, prob=x, replace=TRUE)}
trt = apply(cbind(p1,p2,p3),1,tmp)
IND=rep(1:S,each=N) #create an indicator for split simulated data
sim=data.frame(x1,x2,x3,x4,trt, IND)
Aset = subset(sim, trt=="A")
Bset = subset(sim, trt=="B")
Cset = subset(sim, trt=="C")
Anew = split(Aset, f = IND)
Bnew = split(Bset, f = IND)
Cnew = split(Cset, f = IND)
警告メッセージです。
> Anew = split(Aset, f = IND)
Warning message:
In split.default(x = seq_len(nrow(x)), f = f, drop = drop, ...) :
data length is not a multiple of split variable
となり、出力は
$`2`
x1 x2 x3 x4 trt IND
141 1.0894068 0.09765185 -0.46702047 0.4049424 A 3
145 -1.2953113 -1.94291045 0.09926239 -0.5338715 A 3
148 0.0274979 0.72971804 0.47194731 -0.1963896 A 3
$`3`
[1] x1 x2 x3 x4 trt IND
<0 rows> (or 0-length row.names)
何度もRのコードを確認しましたが、何が間違っていたのかわかりません。ありがとうございました。
解決方法は?
IND
はフルデータのグローバル変数です。
sim
. サブセットには、特定のものを使用します。
Anew <- split(Aset, f = Aset$IND)
関連
-
[解決済み】エラー:ベクターメモリの枯渇(制限に達したか) R 3.5.0 macOS
-
[解決済み】Rエラー。"新しい列は既存の列の後に穴を空ける"
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】"object not interpretable as a factor "というエラーの意味は?[クローズド]
-
[解決済み] 関数のソースコードを見るにはどうしたらいいですか?
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】RStudioを使用したRのアップデート
-
[解決済み】データフレームの文字列カラムを複数カラムに分割する
-
[解決済み】関数内でreturnを明示的に呼び出すかどうか
-
[解決済み】set.seed関数を使用する理由
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R:関数に有限な'ylim'値が必要
-
[解決済み] promise already under evaluation: recursive default argument reference or earlier problems?
-
[解決済み】model.frame.defaultでのエラー:変数の長さが異なる
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】apply()とadply()の出力が異なる件)
-
[解決済み】データのマージ - fix.by(by.x, x)のエラー)
-
[解決済み】Rの整数オーバーフローとは何ですか、そしてどのように起こるのですか?
-
[解決済み] 因子を日付形式に変換するにはどうすればいいですか?
-
[解決済み】 .subset2(x, i, exact = exact)のエラー:Rの添え字が範囲外である。