我正在尝试将json文件加载到r中的data.frame中.我对jsonlite包中的fromJSON函数运气不错 - 但我得到了嵌套列表,并且不确定如何将输入展平为二维data.frame.Jsonlite以data.frame的形式读取文件,但在一些变量中留下嵌套列表.
有人在使用嵌套列表读入时将任何JSON文件加载到data.frame有任何提示.
#*#*#*#*#*#*#*#*#*##*#*#*#*#*#*#*#*#*# HERE IS MY EXAMPLE #*#*#*#*#*#*#*#*#*##*#*#*#*#*#*#*#*#*#
# loads the packages
library("httr")
library( "jsonlite")
# downloads an example file
providers <- fromJSON( "http://fm.formularynavigator.com/jsonFiles/publish/11/47/providers.json" , simplifyDataFrame=TRUE )
# the flatten function breaks the name variable into three vars ( first name, middle name, last name)
providers <- flatten( providers )
# but many of the columns are still lists:
sapply( providers , class)
# Some of these lists have a single level
head( providers$facility_type )
# Some have …Run Code Online (Sandbox Code Playgroud) 有谁知道如何在rbind.fill函数中保留rownames .
library(plyr)
#creating data
a <- mtcars[ 1:5 , c("mpg","hp","gear") ]
b <- mtcars[ 6:10 , c("mpg","disp","gear") ]
#does not work because there are different colnames
rbind(a,b)
#works but eliminates the rownames
bound <- rbind.fill( a , b )
Run Code Online (Sandbox Code Playgroud)
我正在设置一个循环,用于连接对象rbind.fill.现在我正在使用这样的组合函数:
namess <- c( rownames(a) , rownames(b) )
rownames(bound) <- namess
Run Code Online (Sandbox Code Playgroud)
我认为可能有更好的方法.谢谢!
我想将字符向量修剪为每个元素中的前五个字符。在此示例中,我想将字符串中的每个数字修剪为前五个字符。我相信一定有一种简单的方法可以做到这一点。
string<-
c("3243423",
"23423",
"34243234",
"2342",
"32544532",
"85678657")
Run Code Online (Sandbox Code Playgroud)
我想要一个向量
c("32434",
"23423",
"34243",
"2342",
"32544",
"85678")
Run Code Online (Sandbox Code Playgroud) 我想采取一堆由几百个分组变量分组的描述性统计数据.我知道如何按多列对data.table进行分组?如果我想要分组变量组合的统计数据,我可以在分组参数中使用list().在我的情况下,我希望Y的每个级别的平均值比Z的每个级别的平均值
# example data
set.seed(007)
DF <- data.frame(X=1:50000, Y=sample(c(0,1), 50000, TRUE), Z=sample(0:5, 50000, TRUE))
library(data.table)
DT <- data.table(DF)
# I tried this - but this gives the mean for each combination of Y and Z
DT[, mean(X), by=list(Y, Z)]
# so does this
DT[, mean(X), by=c("Y", "Z")]
# This works but....
out <- lapply( c( "Y","Z") , FUN= function(K){ DT[, mean(X), by=get(K)]})
out <- do.call( rbind, out )
#...but it is really slow.
Run Code Online (Sandbox Code Playgroud)
我有1亿条记录和400多个分组变量,所以需要一些东西 - 有点高效.lapply选项增加了几天的额外处理时间
options( digits=15 …Run Code Online (Sandbox Code Playgroud) 我想使用 str_detect 而不是将 "" 转换为另一个字符串模式。有没有一种简单的方法来处理现在生成警告的空字符串模式“”。我希望这能产生 TRUE、FALSE、FALSE、FALSE、FALSE
library( tidyverse )
str_detect('matt', c( "matt","joe","liz","", NA))
Run Code Online (Sandbox Code Playgroud) 我从Generate unique alphanumeric IDs中了解到,我可以使用stringi并stri_rand_strings生成唯一的字母数字 ID。我试图找出一种有效的方法来做到这一点,但只包括数字 0-9 和所有字母,但“I”和“O”除外。我似乎无法弄清楚如何将其包含在模式中c( LETTERS[c(1:8,10:14,16:26)],"[0-9]")
stri_rand_strings(25, 6)
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的方法可以从字符串中删除特定字符.在下面的示例中,我想从向量的每个元素中删除最后三个字符.
string<-c("Autauga AL", "Bald Win Av", "Barbour AL", "Bibb AL" , "Blount At" , "Bullock AL")
Run Code Online (Sandbox Code Playgroud) 我正在尝试从我加载 Haven 的 data.frame 中获取值标签列表。我的变量存储为haven_labelled,我知道值标签在那里,因为当我运行时,str()它们被列为属性。
str( x$tranwork )
'haven_labelled' num [1:498381] NA NA NA NA NA NA NA NA NA NA ...
- attr(*, "label")= chr "Means of transportation to work"
- attr(*, "format.stata")= chr "%24.0g"
- attr(*, "labels")= Named num [1:19] 0 10 11 12 13 14 15 20 30 31 ...
..- attr(*, "names")= chr [1:19] "N/A " "Auto, truck, or van" "Auto" "Driver" ...
>
Run Code Online (Sandbox Code Playgroud)
似乎有很多获得变量标签的好方法。我不知道如何使用SPSS 获取 R 包 Haven 中的值标签变量标签或使用 Haven …
我试图弄清楚如何动态地对调查设计对象进行子集化.我已经构造了我的循环来发送字符串,并且不知道如何删除引号,因此R将其作为调用读取.
我想循环一些这样的(虽然这显然会破坏,因为%4中的SUBSET_VARIABLE%需要是一个调用而不是一个字符串.:
design <- svydesign( ~1 , weight = ~wt , data = mtcars )
for( SUBSET_VARIABLE in c("gear","carb") ){
design <- subset( design , SUBSET_VARIABLE %in% 4 )
a <- svymean(~mpg, design)
}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想避免在粘贴函数中定义语句而不是使用eval( parse ( text = statement ) ) )它来执行它.此外,我想避免使用索引,因为我知道survey.design对象的子集方法执行其他任务(请参阅getS3method("subset", "survey.design"):),并希望确保动态运行子集完全等同于使用循环中的子集函数.感谢您的任何帮助,您可以提供
马修
当使用打印功能打印到屏幕时,我希望一行出现在一行上,下一行出现在第二行.
用这条线
print(
paste(
"hey I want this to be line one", "and this to be line two", "would be great if you could help"
)
)
Run Code Online (Sandbox Code Playgroud)
我希望这个打印
[1]"嘿,我希望这是第一行
[2]如果你能提供帮助,这就是第二行会很棒
其他人一定有这个问题,但我找不到另一个发布问题的用户,所以我会.
v <- gsub( "*" , "" , "All Large Firms*" )
Run Code Online (Sandbox Code Playgroud)
我希望v成为"All Large Firms",但它并没有将"*"视为文本
我正在处理一大堆数字.我知道如何将数字转换为逗号格式:R中数字的逗号分隔符?.我不知道该怎么做是在控制台中用逗号显示数字而不用从数字转换类.我希望能够看到逗号,以便我可以在工作时比较数字 - 但需要将数字保持为数字以进行计算.我知道你可以摆脱科学记数法:如何禁用科学记数法? - 但无法找到逗号或美元格式的等效项.