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

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

2
ユニコード記号とそのユニコード表現を区別するためのdplyrフィルター条件
私はそれがフォームであるかどうかに基づいてシンボル列をフィルタリングしようとしています \uxxxx これは、視覚的に簡単であること、いくつかのように見える$、¢、£、そして他の人が好き\u058f、\u060b、\u07fe。 しかし、私はstringi/ を使用してそれを理解するようには思えませんdplyr library(dplyr) library(stringi) df <- structure(list(Character = c("\\u0024", "\\u00A2", "\\u00A3", "\\u00A4", "\\u00A5", "\\u058F", "\\u060B", "\\u07FE", "\\u07FF", "\\u09F2", "\\u09F3", "\\u09FB", "\\u0AF1", "\\u0BF9", "\\u0E3F", "\\u17DB", "\\u20A0", "\\u20A1", "\\u20A2", "\\u20A3"), Symbol = c("$", "¢", "£", "¤", "¥", "\u058f", "\u060b", "\u07fe", "\u07ff", "৲", "৳", "\u09fb", "\u0af1", "\u0bf9", "฿", "៛", "₠", …
10 r  dplyr  stringr  stringi 

1
glmでロジスティック回帰に適合するデフォルトの開始値
で指定されているデフォルトの開始値はどのようになっているのでしょうかglm。 この投稿は、デフォルト値がゼロとして設定されることを示唆しています。この1は、その背後にあるアルゴリズムは、しかし、関連するリンクが壊れているがあることを述べています。 単純なロジスティック回帰モデルをアルゴリズムトレースで近似しようとしました: set.seed(123) x <- rnorm(100) p <- 1/(1 + exp(-x)) y <- rbinom(100, size = 1, prob = p) # to see parameter estimates in each step trace(glm.fit, quote(print(coefold)), at = list(c(22, 4, 8, 4, 19, 3))) まず、初期値の指定なし: glm(y ~ x, family = "binomial") Tracing glm.fit(x = structure(c(1, …

2
r-markdownを使用してテキストの複数の行に整列するインライン画像を編む方法は?
ヘッダーが下の画像のようになるようにレポートを編成します。 一番左の四角はアイコンです 長方形はテキストです 私は現在3つの問題に遭遇しました URL付きのアイコン(オンライン画像)を挿入する方法は? アイコンを3行のテキストとインラインになるようにフォーマットする方法 フォントサイズと行間の行間隔を変更する方法 以下の再現可能な最小限の例を見つけてください(正しくコーディングする方法がわからないため、オンラインイメージにコメントを付けました) --- output: pdf_document geometry: margin=0.25in classoption: - landscape --- ```{r, echo=FALSE, results='asis'} for (i in unique(iris$Species)) { cat("\\newpage") # cat('\n![](https://bookdown.org/yihui/rmarkdown/images/hex-rmarkdown.png)\n') cat("\n#", "Iris Species Summary", "\\hfill", paste0("Exhibit ", grep(i, unique(iris$Species)), ".1")) cat("\n##", i, "\\hfill", "(Gross)") cat("\n######", "(000's)", "\\hfill", as.character(Sys.Date())) } ```
10 r  r-markdown  knitr 

6
data.framesのネストされたリストからcolnamesを抽出します
data.framesのネストされたリストがあります。すべてのdata.framesの列名を取得する最も簡単な方法は何ですか? 例: d = data.frame(a = 1:3, b = 1:3, c = 1:3) l = list(a = d, list(b = d, c = d)) 結果: $a [1] "a" "b" "c" $b [1] "a" "b" "c" $c [1] "a" "b" "c"
10 r 

3
R:置換せずに同じ値を連続させずにサンプリングする方法
私は非常に単純なことのように見えることを達成するために1日以上費やしてきました。300の「ランダム」シーケンスを作成する必要があります。この場合、1、2、3、および4の数字はすべて正確に12回表示されますが、同じ数字が「連続して」2回続けて使用されることはありません。 私の最善の試み(私は推測)は: 置換なしのRサンプル48アイテムを持ち、rleで連続値があるかどうかをテストしてから、連続値を含まないシーケンスのみを使用します。問題:この基準を満たすランダムシーケンスはほとんどないため、時間がかかります。 Rに連続値のないシーケンスを作成させます(コードを参照)。 pop<-rep(1:4,12) y=c() while(length(y)!=48) { y= c(y,sample(pop,48-length(y),replace=F)) y=y[!c(FALSE, diff(y) == 0)] } 問題:これにより、各値の数が異なるシーケンスが作成されます。次に、各値がちょうど12のシーケンスのみを使用しようとしましたが、問題1に戻るだけでした。 これを行う簡単な方法がいくつかあるに違いありませんよね?どんな助けでも大歓迎です!
10 r  sample 

2
同じベクターへの2つの参照がベクターの各要素に対して異なるメモリアドレスを返すのはなぜですか?
私はRを学び、現在この本を読んでいます。概念を確実に理解するために、次のテストを実行しましたが、わかりにくいので、明確にしていただければ幸いです。これは、ターミナルからRシェルで直接実行したテストです(RStudioまたはEmacs ESSを使用していません)。 > library(lobstr) > > x <- c(1500,2400,8800) > y <- x > ### So the following two lines must return the same memory address > obj_addr(x) [1] "0xb23bc50" > obj_addr(y) [1] "0xb23bc50" > ### So as I expected, indeed both x and y point to the same memory …
9 r 

1
lm式で変数を削除しても、コントラストエラーが発生する
データのサブセットのみでlm()を実行しようとしていますが、問題が発生しています。 dt = data.table(y = rnorm(100), x1 = rnorm(100), x2 = rnorm(100), x3 = as.factor(c(rep('men',50), rep('women',50)))) # sample data lm( y ~ ., dt) # Use all x: Works lm( y ~ ., dt[x3 == 'men']) # Use all x, limit to men: doesn't work (as expected) 上記は機能しません。データセットに男性のみが含まれるため、性別変数x3をモデルに含めることができないためです。だが... lm( y …
9 r  formula  lm  factors 

2
ファイルサイズを自動的に増加させずにファイルを並行して保存するにはどうすればよいですか?
まったく同じことを行う2つのスクリプトがあります。 しかし、1つのスクリプトは82.7 KBの重みを持つ3つのRDataファイルを作成し、もう1つのスクリプトは120 KBの重みを持つ3つのRDataファイルを作成します。 最初のものはパラレルなしです: library("plyr") ddply(.data = iris, .variables = "Species", ##.parallel=TRUE,##Without parallel .fun = function(SpeciesData){ #Create Simple Model ------------------------------------------------------------- Model <- lm(formula = "Sepal.Length~Sepal.Width+Petal.Length+Petal.Width",data = SpeciesData) #Save The Model ------------------------------------------------------------- save(Model, compress = FALSE, file = gsub(x = "Species.RData", pattern = "Species", replacement = unique(SpeciesData$Species))) }) 2つ目はパラレルを使用する場合です。 library("plyr") …
9 r  plyr 

1
RでのGISマップの自動ラベル配置
sfシェープファイルを読み込むためのパッケージ(および関連パッケージ)を使用して、RでGISマップを作成していますggplot2。これは正常に機能しますが、川や道路などのフィーチャのラベル配置を(自動/プログラムで)作成する方法を見つけることができません。これらの機能は通常、不規則な形状のラインストリングです。ウィキメディアの例の添付画像を参照してください。 ggrepelパッケージには、自動化された方法でポイントを標識に適していますが、これは個別の緯度/経度のポイントではありません、他の地理的特徴のためにあまり意味がありません。 各機能に個別のテキストラベルを個別に配置することでこれを行うことは想像できますが、可能であれば、より自動化されたものを探しています。そのような自動化はささいな問題ではないことに気づきましたが、以前に解決されています(ArcGISにはmaplexという拡張機能を使用してこれを行う方法があるようですが、ソフトウェアにアクセスできないので、可能であればR)。 誰かがこれを行う方法を知っていますか? ここにMWE: #MWE Linestring labeling library(tidyverse) library(sf) library(ggrepel) set.seed(120) #pick a county from the built-in North Carolina dataset BuncombeCounty <- st_read(system.file("shapes/", package="maptools"), "sids") %>% filter(NAME == "Buncombe") #pick 4 random points in that county pts_sf <- data.frame( x = seq(-82.3, -82.7, by=-0.1) %>% sample(4), y = seq(35.5, …
9 r  gis  spatial  sf  ggrepel 

2
複数のコードチャンクを簡潔に表示する
私はblogdown、RのコードとStataのコードを比較するブログを作成しています。ユーザーがRとStataでどのように行われるかを比較できるように、両方のコードを表示したいと思います。さらに、2つ以上のチャンクを続けて配置すると(Rのコード、Stata +出力のコード)、読み取りが非常に不快になります。 いくつかのレイアウトがいくつかのチャンクを含むように思いつきましたが、それらがすでに実装されているかどうか、またはそれが可能かどうかさえわかりません。 チャンクを表示/非表示にするボタンがあります(チャンクごとに1つのボタン) 1つのアイデアは、 記事でデフォルトで表示されるRコードチャンク Stataコードチャンクはデフォルトでは非表示ですが、ユーザーがボタンをクリックすると表示されます この人とこの人は、blogdownでコードチャンクを折りたたむことに成功しましたが、明らかに、デフォルトですべてのチャンクを非表示または表示します。デフォルトで一部のチャンクのみを非表示にするにはどうすればよいですか?オプション(オプションなどがありeval、echo...)は獣皮かを示すコードチャンクではblogdown? 「タブ」付きのチャンク この部分のタイトルはそれ自体を物語っています:あるコードから別のコードに切り替えることができるようにタブをチャンクに含めることは可能ですか(たとえばWebブラウザーのタブのように)? 2つのチャンクを並べて表示する 一部のblogdownテーマ(多分、すべてはわかりません)では、幅がかなり狭くなり、側面に未使用のスペースがいくつかあります。したがって、記事の一部の幅を増やし、2つのチャンクを並べて表示することは可能ですか? これらのレイアウトの1つをで実現できるblogdownかどうかは?
9 r  blogdown 

5
最後の(または唯一の)文字がゼロでない限り、Rの先行ゼロを削除する正規表現
gsub("(?<![0-9])0+", "", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" gsub("(^|[^0-9])0+", "\\1", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" 上記の正規表現は、Rの文字列からすべての先行ゼロを削除する方法を説明するこのSOスレッドからのものです。この正規表現の結果として、「000」と「0」は両方とも「」に変換されます。代わりに、最後の文字が偶然ゼロである場合、または唯一の文字がゼロである場合を除いて、文字列からすべての先行ゼロを削除します。 "005" would become "5" "0AB" would become "AB" "000" would become "0" "0" would become "0" この別のSOスレッドは私がやりたいことを行う方法を説明していますが、Rのソリューションを適用して構文が完全に正しいとは思いません。また、以下の1番目と2番目のソリューションの違いを本当に理解していません(彼らが実際に働いた場合)。 gsub("s/^0*(\d+)$/$1/;", "", …
9 r  regex  string  gsub  stringr 

1
`tempdisagg`パッケージの` td`コマンドを使用して月次データを日次データ頻度に分解するにはどうすればよいですか?
月別の頻度データがあり、それを日別の頻度データに分解しようとしています。したがって、以下のコードを使用して、R tdのtempdisaggパッケージのコマンドを使用します。 dat=ts(data[,2]) result=td(dat~1, conversion = "average", to = "day", method = "chow-lin-maxlog") 次に、次のエラーメッセージが表示されます。 Error in td(dat ~ 1, conversion = "average", to = "day", method = "chow-lin-maxlog") : 'to' argument: unknown character string 私が使用するデータdatは次のとおりです。 > dput(head(dat)) c(82.47703009, 84.63094431, 70.00659987, 78.81135651, 74.749746,82.95638213) したがって、このデータdatは毎月の頻度ですが、開始と終了はまだこれを反映していません。実際、開始日は1/1997、終了日は2019年9月です。 この月次データdatを日次頻度データに分解する方法について教えてください。

1
RcppArmadilloのsample()はRを更新した後、あいまいになります
私は通常、各行に合計1のK確率が含まれている行列を入力として受け取る短いRcpp関数を使用します。この関数は、提供された確率に対応する1〜Kの整数を各行に対してランダムにサンプリングします。これは関数です: // [[Rcpp::depends(RcppArmadillo)]] #include <RcppArmadilloExtensions/sample.h> using namespace Rcpp; // [[Rcpp::export]] IntegerVector sample_matrix(NumericMatrix x, IntegerVector choice_set) { int n = x.nrow(); IntegerVector result(n); for ( int i = 0; i < n; ++i ) { result[i] = RcppArmadillo::sample(choice_set, 1, false, x(i, _))[0]; } return result; } 最近、Rとすべてのパッケージを更新しました。この関数はもうコンパイルできません。その理由ははっきりしない。ランニング library(Rcpp) library(RcppArmadillo) Rcpp::sourceCpp("sample_matrix.cpp") 次のエラーをスローします。 …
9 r  rcpp  rcpparmadillo 

1
Rcpp関数から「新しい」オブジェクトへのポインターを返す適切な方法
1)潜在的に大きなメモリプリントを含むカスタムクラス、および2)前処理を実行してからカスタムクラスの新しいオブジェクトを作成して返すトップレベルの関数を検討してください。値による不要なコピーを回避するために、関数はオブジェクトを割り当て、代わりにオブジェクトへのポインターを返します。 以前の議論に基づいて、新しく作成されたオブジェクトへのポインタを返す適切な方法は、それをでラップすることRcpp::XPtr<>です。しかし、Rはそれを効果的にと見なしexternalptr、私はそれをモダンRCPP_EXPOSED_CLASSでRCPP_MODULE物事のやり方にキャストする適切な方法を見つけるのに苦労しています。 別の方法は、生のポインタを返すことです。しかし、オブジェクトメモリが適切にクリーンアップされるかどうかは100%確実ではありません。私はvalgrindメモリリークをテストするために実行しましたが、何も見つかりませんでした。しかし、誰が片付けをしますか?R? test.cpp #include <Rcpp.h> // Custom class class Double { public: Double( double v ) : value(v) {} double square() {return value*value;} private: double value; }; // Make the class visible RCPP_EXPOSED_CLASS(Double) // Option 1: returning raw pointer Double* makeDouble( double x ) { Double* pd = new …
9 c++  r  rcpp 

6
重複する文字を一致させて削除する:複数(3+)の連続しない出現箇所を置き換えます
regex各文字の3番目、4番目、...の出現に一致するパターンを探しています。明確にするために以下を見てください: たとえば、次の文字列があります。 111aabbccxccybbzaa1 2回目以降の重複文字をすべて置き換えたい。出力は次のようになります。 11-aabbccx--y--z--- これまでに試したいくつかの正規表現パターン: 次の正規表現を使用して、各文字の最後の出現を見つけることができます。 (.)(?=.*\1) または、これを使用して、連続する重複に対してそれを行うことができますが、重複に対してはできません: ([a-zA-Z1-9])\1{2,}
9 python  r  regex  string 

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