タグ付けされた質問 「r」

Rは、統計コンピューティング、バイオインフォマティクス、視覚化、および一般的なコンピューティングのための無料のオープンソースプログラミング言語およびソフトウェア環境です。必要な出力とともに、最小限の再現可能な例を提供してください。データには `dput()`を使用し、 `library()`呼び出しですべての非ベースパッケージを指定します。データやコードの画像を埋め込まないでください。代わりにインデントされたコードブロックを使用してください。統計関連の質問については、https://stats.stackexchange.comを使用してください。

1
Rを使用して誕生日の音楽を再生するにはどうすればよいですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 2年前に閉鎖されました。 この質問を改善する Rを使って音楽を演奏したいと思います。Rはこの目的に最適なツールではないかもしれませんが、私がよく知っているツールであり、このような楽しい機会にその柔軟性を他の人に示すのは素晴らしいことです。 どうすればこれを達成できますか?
80 r 

3
Rおよびオブジェクト指向プログラミング
Rでは、何らかの方法でオブジェクト指向プログラミングを行うことができます。ただし、たとえばPythonとは異なり、オブジェクト指向を実現する方法はたくさんあります。 R.ooパッケージ S3およびS4クラス 参照クラス プロトパッケージ 私の質問は: Rでのオブジェクト指向プログラミングのこれらの方法を区別する主な違いは何ですか? 理想的には、ここでの回答は、どのOOプログラミング方法が彼らのニーズに最も適しているかを決定しようとするRプログラマーのための参照として役立つでしょう。 そのため、私は詳細を求め、経験に基づいて客観的に提示し、事実と参照に裏打ちされています。これらの方法が標準のOOプラクティスにどのようにマッピングされるかを明確にするためのボーナスポイント。
80 oop  r 


2
差がマシンの精度よりも小さいかどうかを確認する正しい/標準的な方法は何ですか?
私はしばしば、得られた差が機械の精度を超えているかどうかを確認する必要がある状況に陥ります。この目的のために、Rには便利な変数があります.Machine$double.eps。ただし、この値の使用に関するガイドラインについてRソースコードを参照すると、複数の異なるパターンが表示されます。 例 statsライブラリの例をいくつか示します。 t.test.R if(stderr < 10 *.Machine$double.eps * abs(mx)) chisq.test.R if(abs(sum(p)-1) > sqrt(.Machine$double.eps)) 統合します。 rel.tol < max(50*.Machine$double.eps, 0.5e-28) lm.influence.R e[abs(e) < 100 * .Machine$double.eps * median(abs(e))] <- 0 princomp.R if (any(ev[neg] < - 9 * .Machine$double.eps * ev[1L])) 等 ご質問 どのようにして、これらの異なるすべての背後にある理由を理解することができ10 *、100 *、50 *およびsqrt()修飾子を? .Machine$double.eps精度の問題による差異の調整に使用するガイドラインはありますか?

14
正および負の数列の数と合計
正と負の一連の数値を数えて合計するコードを書きたいのですが。 数値は正または負(ゼロなし)です。ループ 付きのコードを書いたことがありforます。創造的な選択肢はありますか? データ R set.seed(100) x <- round(rnorm(20, sd = 0.02), 3) python x = [-0.01, 0.003, -0.002, 0.018, 0.002, 0.006, -0.012, 0.014, -0.017, -0.007, 0.002, 0.002, -0.004, 0.015, 0.002, -0.001, -0.008, 0.01, -0.018, 0.046] ループ R sign_indicator <- ifelse(x > 0, 1,-1) number_of_sequence <- rep(NA, 20) n <- …
31 python  r 

7
NAを値のセットで置き換える方法
次のデータフレームがあります。 library(dplyr) library(tibble) df <- tibble( source = c("a", "b", "c", "d", "e"), score = c(10, 5, NA, 3, NA ) ) df 次のようになります。 # A tibble: 5 x 2 source score <chr> <dbl> 1 a 10 . # current max value 2 b 5 3 c NA 4 d …
18 r  dplyr  tibble 

5
グループなしでNA値を線形補間するdata.table
グループなしでdata.tableにいくつかのNA値を入力したいと思いました。時間と距離を表すdata.tableのこの抽出を検討してください: library(data.table) df <- data.frame(time = seq(7173, 7195, 1), dist = c(31091.33, NA, 31100.00, 31103.27, NA, NA, NA, NA, 31124.98, NA,31132.81, NA, NA, NA, NA, 31154.19, NA, 31161.47, NA, NA, NA, NA, 31182.97)) DT<- data.table(df) DTのdata.tableで、NAの前と後の非NA値に応じた関数でNA値を入力する必要があります。例として、jで関数を記述して各命令を置き換える DT[2, dist := (31091.33 + (31100-31091.33) / 2)] その後 DT[5:8, dist := (31103.27 + …
18 r  data.table 

3
Rcppを遅くしてR目的関数を最適化すると、なぜですか?
私は現在、反復ごとに多項ロジットモデルの最適化の複数のステップを必要とするベイズ法に取り組んでいます。これらの最適化を実行するためにoptim()を使用し、Rで記述された目的関数を使用しています。プロファイリングにより、optim()が主なボトルネックであることが明らかになりました。 調べてみると、目的関数を再コーディングするとプロセスが高速化する可能性があることを示唆するこの質問が見つかりましたRcpp。私は提案に従い、目的関数をRcppでに遅くなりました(約2倍遅い!)。 これは初めてRcpp(またはC ++に関連するもの)で、コードをベクトル化する方法を見つけることができませんでした。それをより速くする方法はありますか? Tl; dr:Rcppの関数の現在の実装は、ベクトル化されたRほど高速ではありません。速くする方法は? 再現可能な例: 1)Rおよびで目的関数を定義するRcpp:切片のみの多項モデルの対数尤度 library(Rcpp) library(microbenchmark) llmnl_int <- function(beta, Obs, n_cat) { n_Obs <- length(Obs) Xint <- matrix(c(0, beta), byrow = T, ncol = n_cat, nrow = n_Obs) ind <- cbind(c(1:n_Obs), Obs) Xby <- Xint[ind] Xint <- exp(Xint) iota <- c(rep(1, (n_cat))) denom <- log(Xint %*% …
16 c++  r  optimization  rcpp 

3
その関数内の関数名を判別する
その非匿名関数内で関数の名前を取得するにはどうすればよいですか?以下では、これを実行するための関数またはプロセスが呼び出されmagical_r_function()、予想される出力がどうなるかを想定しています。 my_fun <- function(){ magical_r_function() } my_fun() ## [1] "my_fun" foo_bar <- function(){ magical_r_function() } foo_bar() ## [1] "foo_bar" ballyhoo <- function(){ foo_bar() } ballyhoo() ## [1] "foo_bar" tom_foolery <- foo_bar tom_foolery() ## [1] "tom_foolery"
15 r 

1
seq.intの制限は何ですか?
seqmanページには、次の(強調鉱山)を述べています: 説明文 通常のシーケンスを生成します。seqデフォルトのメソッドを持つ標準的なジェネリックです。seq.intプリミティブであり、はるかに高速ですが、いくつかの制限があります。 ただし、このページでは、これらの制限について実際に説明していません。ここに他のすべての言及がseq.intあります: 議論 [...] length.outシーケンスの長さ。負seqでseq.intはない数値。小数の場合は切り上げられます。 [...] 細部 [...] seqおよびの無名引数の解釈はseq.int標準ではありません。プログラミング時には常に引数に名前を付けることをお勧めします。 [...] seq.intseq最初に指定された引数のクラス(引数のマッチング前)に基づいて" "のメソッドをディスパッチする内部ジェネリックです。 seq.int、seq_alongおよびseq_lenプリミティブです。 値 seq.intseq数値引数のデフォルトのメソッドは、タイプが「integer」または「double」のベクトルを返します。プログラマはこれに依存しないでください。 最初の引数のクラスに従ってseq.intディスパッチseqすることを述べる以外に、「制限」はありません。 では、これらの制限は何ですか?
15 r 

4
Rを使用してLucky 26ゲームを解く
私は息子がゲームによって引き起こされる問題を解決するためにコーディングをどのように使用できるかを示すとともに、Rがビッグデータを処理する方法を確認しようとしています。問題のゲームは「ラッキー26」と呼ばれます。このゲームでは、数字(重複なしの1〜12)は、星のデビッド(頂点6、交差6)上の12ポイントに配置され、4つの数字の6行はすべて26に追加する必要があります。約4億7900万の可能性(12P12 )明らかに144のソリューションがあります。これをRで次のようにコーディングしようとしましたが、メモリが問題のようです。時間があれば、回答を進めるためのアドバイスをいただければ幸いです。事前にメンバーに感謝します。 library(gtools) x=c() elements <- 12 for (i in 1:elements) { x[i]<-i } soln=c() y<-permutations(n=elements,r=elements,v=x) j<-nrow(y) for (i in 1:j) { L1 <- y[i,1] + y[i,3] + y[i,6] + y[i,8] L2 <- y[i,1] + y[i,4] + y[i,7] + y[i,11] L3 <- y[i,8] + y[i,9] + y[i,10] + y[i,11] L4 …
15 r  bigdata  permutation 


2
ggplotが持つファセットの数をプログラムで確認するにはどうすればよいですか?
以下はコードとグラフです。 グラフには3つのファセットがあります。the_plot3つのファセットがある場所はどこにありますか?はい、mtcarsデータフレームまたはから取得できますがthe_plot$data、データ分析を再作成したくありません。むしろ、のグラフィック要素を調べたいthe_plotので、アプリケーションロジックを複数の場所に複製する必要はありません。 the_plot$facet私が認識したものは何も表示されず、他のプロット変数も表示されません。 tidyverse 1.3.0を使用しています。 library(tidyverse) data(mtcars) the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point() the_plot
13 r  ggplot2 

3
mutateの右側のrecodeでのtidyevalベースの非標準評価の使用
各列が多くの値をとることができる文字ベクトルであるティブルを考えてみましょう-「A」から「F」までとしましょう。 library(tidyverse) sample_df <- tibble(q1 = c("A", "B", "C"), q2 = c("B", "B", "A")) 引数として列名を取り、その列を再コード化して、回答「A」がNAになり、それ以外の場合はdfがそのまま返されるようにする関数を作成したいと思います。このように設計する理由は、特定の列を使用して一連の操作を実行するより広範なパイプラインに適合するためです。 これを行うには多くの方法があります。しかし、私は、慣用的なtidy_eval / tidyverseアプローチが何であるかを理解することに興味があります。まず、質問名はmutate動詞の左側にある必要があるため、!!and :=演算子を適切に使用します。しかし、それでは右側に何を置くべきでしょうか? fix_question <- function(df, question) { df %>% mutate(!!question := recode(... something goes here...)) } fix_question(sample_df, "q1") # should produce a tibble whose first column is (NA, "B", "C") 私の最初の考えはこれがうまくいくと思いました: df %>% …
13 r  dplyr  rlang  tidyeval  nse 

1
Rでセクションとサブセクションを持つ列で構成されるデータフレームをピボットする方法
以下のデータフレームがあります: structure( list(ID = c("P-1", " P-1", "P-1", "P-2", "P-3", "P-4", "P-5", "P-6", "P-7", "P-8"), Date = c("2020-03-16 12:11:33", "2020-03-16 13:16:04", "2020-03-16 06:13:55", "2020-03-16 10:03:43", "2020-03-16 12:37:09", "2020-03-16 06:40:24", "2020-03-16 09:46:45", "2020-03-16 12:07:44", "2020-03-16 14:09:51", "2020-03-16 09:19:23"), Status = c("SA", "SA", "SA", "RE", "RE", "RE", "RE", "XA", "XA", "XA"), Flag …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.