我喜欢Rstudio IDE和轻松点击git(hub)集成.
我可以将Rstudio用作其他编程语言的IDE吗?
特别是,除了R/Rstudio之外,我还经常使用Stata.Stata很棒,但编程环境(文件编辑器)落后了数年.根据本指南,Stata可以设置为从其他文本编辑器(Emacs等)运行.
我可以把它设置为从Rstudio运行吗?Rstudio可以支持Stata语言的语法高亮吗?如果是这样,我可以在Rstudio中添加一个快捷方式或命令来执行Stata代码块吗?
在R中,我有两个包含列表列的数据框
d1 <- data.table(
group_id1=1:4
)
d1$Cat_grouped <- list(letters[1:2],letters[3:2],letters[3:6],letters[11:12] )
Run Code Online (Sandbox Code Playgroud)
和
d_grouped <- data.table(
group_id2=1:4
)
d_grouped$Cat_grouped <- list(letters[1:5],letters[6:10],letters[1:2],letters[1] )
Run Code Online (Sandbox Code Playgroud)
我想合并这两个data.tables基于d1$Cat_grouped包含在向量中的向量d_grouped$Cat_grouped
更确切地说,可能有两个匹配标准:
a)每个向量的所有元素d1$Cat_grouped必须在匹配的向量中d_grouped$Cat_grouped
导致以下匹配:
result_a <- data.table(
group_id1=c(1,2)
group_id2=c(1,1)
)
Run Code Online (Sandbox Code Playgroud)
b)每个向量中的至少一个元素d1$Cat_grouped必须在匹配的向量中d_grouped$Cat_grouped
导致以下匹配:
result_b <- data.table(
group_id1=c(1,2,3,3),
group_id2=c(1,1,1,2)
)
Run Code Online (Sandbox Code Playgroud)
我该如何实现a)或b)?优选地,以数据表格的方式.
EDIT1:添加了a)和b)的预期结果
EDIT2:向d_grouped添加了更多组,因此分组变量重叠.这打破了一些建议的解决方案
我正在使用 R blogdown (使用 Hugo 模板)创建我的个人网站(此处)。该网站托管在 github 上,我设法让它与 netlify 持续集成。
我想跟踪一些访客分析。
如何添加访客计数和某种访客分析工具?
Netlify 可以与谷歌分析或类似工具集成吗?
我有一个"分层"网络,有3层,比方说父母(P),孩子(C),孙子(G).边缘总是朝向年轻一代(专利 - >儿童,儿童 - >孙子或父母 - >孙子).同一代中的顶点之间没有边.该图由3个边列表(P_C,C_G,P_C)表示.下面给出一个简短的例子.
1)这种图形/网络的适当术语是什么?三方图?因此,我认为这是一个特殊情况,因为缺乏反向连接.
2)如何在R(igraph)中将其表示为图形对象?
3)我可以用描绘"层"的方式绘制图形,每个组(P,C,GC)的所有顶点在相同的x坐标处对齐,从左边的P,中间的C和GC的严谨性?
4)我可以检查具有这种结构的图之间的图同构,同时考虑数据的分层性质.(我知道对于常规图形,它将是graph.isomorphic()函数).
edge_P_C <- read.table(text="P C
A B
A C", header=T)
edge_C_G <- read.table(text="C G
B D
B E
C F", header=T)
edge_P_G <- read.table(text="P G
A G", header=T)
Run Code Online (Sandbox Code Playgroud) 是否有一种"dplyr方式"来基于变量名称转换器(vt)重命名data.frame中的变量子集,data.frame包含具有旧变量名和新变量名的列(分别为old_varname和new_varname).例如:
d <- iris
vt <- data.frame(old_varname=c('Sepal.Length','Petal.Length'),
new_varname=c('a','b'))
d <- d %>% rename_( .... )
#In base R code, this would be:
names(d)[names(d) %in% vt$old_varname] <- vt$std_varname
Run Code Online (Sandbox Code Playgroud)
编辑:进一步澄清:
长到宽枢轴的简单示例:
library(tidyverse)
library(data.table)
df <- data.frame(names=letters[1:3],values=1:3)
df %>% pivot_wider(names_from=names,values_from=values)
#works
dt <- data.table(names=letters[1:3],values=1:3)
dt %>% pivot_wider(names_from=names,values_from=values)
Error in data.frame(row = row_id, col = col_id) :
arguments imply differing number of rows: 0, 3
Run Code Online (Sandbox Code Playgroud)
为什么会发生这个错误?
PS:一种解决方法是使用as.data.frame(dt).
dt %>% as.data.frame %>% pivot_wider(names_from=names,values_from=values)
#works
Run Code Online (Sandbox Code Playgroud) 为什么136/13.00 %>% round()返回10?没有piper的相同输入返回正确的值
136/13.00 %>% round()
[1] 10.46154
> round(136/13.00)
[1] 10
10.46154 %>% round()
[1] 10
Run Code Online (Sandbox Code Playgroud) 假设我有这个情节
iris2 <- iris %>% data.table
iris2 <- iris2[Sepal.Length<6]
iris2[,Sepal.Width:=mean(Sepal.Width),by=Sepal.Length]
iris2 %>% ggplot(aes(x=Sepal.Length,y=Sepal.Width,color=Species,group=Species)) +
geom_line() + geom_point()
Run Code Online (Sandbox Code Playgroud)
其呈现:
如何添加轴刻度和标签,以便每个点都有相应的刻度和标签?
我正在尝试根据SAS导入文件(声明列宽的文件等)将R ASCII固定列宽数据集快速读入R中。
我知道我可以使用SAScii R包来翻译SAS导入文件(parse.SAScii)和实际导入(read.SAScii)。它可以工作,但是速度太慢,因为read.SAScii使用read.fwf进行数据导入,这很慢。我想将其更改为“ LaF”包中的快速导入方法laf_open_fwf。
我几乎可以使用parse.SAScii()和laf_open_fwf(),但是我能够正确地将parse.SAScii()的输出连接到laf_open_fwf()的参数。
这是代码,数据来自PNAD(2013年全国家庭调查):
# Set working dir.
setwd("C:/User/Desktop/folder")
# installing packages:
install.packages("SAScii")
install.packages("LaF")
library(SAScii)
library(LaF)
# Donwload and unzip data and documentation files
# Data
file_url <- "ftp://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_anual/microdados/2013/Dados.zip"
download.file(file_url,"Dados.zip", mode="wb")
unzip("Dados.zip")
# Documentation files
file_url <- "ftp://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_anual/microdados/2013/Dicionarios_e_input_20150814.zip"
download.file(file_url,"Dicionarios_e_input.zip", mode="wb")
unzip("Dicionarios_e_input.zip")
# importing with read.SAScii(), based on read.fwf(): Works fine
dom.pnad2013.teste1 <- read.SAScii("Dados/DOM2013.txt","Dicionarios_e_input/input DOM2013.txt")
# importing with parse.SAScii() and laf_open_fwf() : stuck here
dic_dom2013 <- parse.SAScii("Dicionarios_e_input/input DOM2013.txt")
head(dic_dom2013)
data <- laf_open_fwf("Dados/DOM2013.txt",
column_types=????? ,
column_widths=dic_dom2013[,"width"],
column_names=dic_dom2013[,"Varname"])
Run Code Online (Sandbox Code Playgroud)
我陷入最后一个命令,将导入参数传递给laf_open_fwf()。
在 R 中,如何定义一个f <- function(x){...}只能将参数设为xor'a'的函数'b'?
[顺便说一句,当前(截至 2020 年)在 R 中创建函数的最佳/简单/实用包是什么?还是氧气吗?]