小编Bri*_*Pom的帖子

R 中是否有相当于 Python 中 range 的函数?

我希望将一个字符串拆分为 3 个字符的 ngram - 例如 HelloWorld 将变为“Hel”、“ell”、“llo”、“loW”等 我如何使用 R 来实现这一点?

在Python中,它需要使用范围函数进行循环 - 例如[myString[i:] for i in range(3)]

有没有一种巧妙的方法可以使用循环遍历字符串的字母stringr将单词标记为向量?

例如

dfWords <- c("HelloWorld", "GoodbyeMoon", "HolaSun") %>% 
              data.frame()
names(dfWords)[1] = "Text"
Run Code Online (Sandbox Code Playgroud)

我想生成一个新列,其中包含标记化文本变量的向量(最好使用dplyr)。然后可以稍后将其拆分为新的列。

string r stringr

13
推荐指数
2
解决办法
7789
查看次数

如何提取列表中的第一项(即使列表为空)

在 R 中,我想从嵌套列表中提取第一项;但有时该列表可能为空。

例如:

myList <- list(
            list(ID = 1, Sales = 1000, Product = "Car"),
            list(ID = 2, Sales = 2000, Product = "Boat"),
            list(ID = 3, Sales = 1500, Product = "Bike")
)
myList2 <- list()
Run Code Online (Sandbox Code Playgroud)

所以当我拨打以下电话时:

myList[[1]]
myList2[[1]]
Run Code Online (Sandbox Code Playgroud)

第一个调用返回一个有效的子列表(ID=1, Sales=1000, Product = "Car"),但第二个调用返回一个错误 -

Error in myList2[[1]] : subscript out of bounds

是否有一个简单的调用可以表示“填充列表时返回项目 1,否则返回NULL并且不抛出错误”?

r

5
推荐指数
1
解决办法
1844
查看次数

从R中的列表列表构建数据框架的最巧妙方法

我有一个子列表,希望将其转换为数据框(特别是作为小标题);例如:

myList <- list(
        list(var1=1,var2=2,var3=3,var4=4,var5=5,var6=6),
        list(var1=4,var2=5,var3=6,var4=7,var5=8,var6=9),
        list(var1=7,var2=8,var3=9,var4=1,var5=2,var6=3)
)
Run Code Online (Sandbox Code Playgroud)

使用以下代码,我可以将选择的变量提取到小数据帧

myDF <- tbl_df(cbind(
  var1 = lapply(myList, '[[', "var1"),
  var2 = lapply(myList, '[[', "var2"),
  var5 = lapply(myList, '[[', "var5"),
  var6 = lapply(myList, '[[', "var6")
))  
Run Code Online (Sandbox Code Playgroud)

但这很冗长。是否有更简洁的方法(也许使用purrr映射函数)可以将选定的子元素从每个列表中拉出并填充到行中?

此外,如果子列表包含列表本身,那么如何最好地提取这些列表的元素;例如:

 myList <- list(
        list(var1=1,var2=2,var3=3,list4=list(varA="a",varB="b")),
        list(var1=4,var2=5,var3=6,list4=list(varA="c",varB="d")),
        list(var1=7,var2=8,var3=9,list4=list(varA="e",varB="f"))
)    
Run Code Online (Sandbox Code Playgroud)

我如何获得以下工作:

myDF <- tbl_df(cbind(
  var1 = lapply(myList, '[[', "var1"),
  var2 = lapply(myList, '[[', "var2"),
  var4 = lapply(myList, '[[', "list4$varA")
)) 
Run Code Online (Sandbox Code Playgroud)

我想从列表4中提取特定元素,但是使用$表示法向下钻取到下一个级别不起作用?

r list

4
推荐指数
1
解决办法
1684
查看次数

使用企业网关时,是否可以在 Power BI Server 中运行 R 脚本?

我在 Power BI 的 PowerQuery 中包含了一个 R 脚本来转换数据。这在 Power BI Desktop 中有效,但是当我推送到 Power BI Server 时,在查看(企业)网关时收到以下错误消息:

Extension{"extensionDataSourceKind":"R","extensionDataSourcePath":"R"} Cannot be added to gateway
Run Code Online (Sandbox Code Playgroud)

进行一些谷歌搜索/查看 Power BI 社区页面表明,企业网关不支持 R 脚本 - 这与 Microsoft 想要支持在云服务器上运行 R 的内存过于密集有关。但我可以找到很少的具体文档(更多意见):

https://www.sqlgene.com/2018/09/25/power-bi-error-r-cannot-be-added-to-gateway/

https://community.powerbi.com/t5/Power-Query/Refresh-R-Scripts-with-Personal-Gateway/mp/445494#M17917

有没有人找到解决方案或开发任何合适的解决方法?例如,可以使用个人网关作为替代方案吗?或者企业网关是否支持Python 脚本的运行?

我很想知道人们发现在 Power BI 服务上运行 R 脚本的任何策略。

r powerbi power-bi-report-server

3
推荐指数
1
解决办法
4647
查看次数

标签 统计

r ×4

list ×1

power-bi-report-server ×1

powerbi ×1

string ×1

stringr ×1