首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Paste0怪异行为

Paste0怪异行为
EN

Stack Overflow用户
提问于 2018-03-14 13:02:53
回答 1查看 102关注 0票数 0

我不知道为什么会发生这种情况,另一位分析师也对此进行了调查,也同样感到困惑。可能与组合的数量有关,但我尝试过的变化对此没有帮助。

下面的语法重新创建了一个构建API调用的语法示例。我有一个域名列表和一个国家列表,它将所有的域名组合在一起(即"bbc.com - UK“、"bbc.com -西班牙”、"bbc.com -波兰“)。国家代码是2位ISO代码,在下面的例子中,域是随机文本。

出于某种原因,当112个域名与7个国家合并时,每个域名被赋予一个国家,即"bbc.com - UK“、"bbc.com - UK”、“bbc.com- UK”。如果我再加上两个国家,就像在第二个例子中一样,这是可行的。改变域名数量也能让它发挥作用。

代码语言:javascript
复制
domains <- data.frame(Domain=paste(stri_rand_strings(112, 5, pattern = "[A-Za-z0-9]"),".com"))

###DOES NOT WORK
country <- data.frame(country=rep(c("au","be","fr","nl","pl","ch","us"),nrow(domains)))                  

###DOES WORK
country <- data.frame(country=rep(c("au","be","fr","nl","pl","ch","us","aa","aa"),nrow(domains)))   


APICall <- paste0('https://api.abc.com/website/',domains$Domain,"/start_date=","2017-03",'&end_date=',"2018-02","&country=",country$country)
APICall <- transform(APICall,Domain=gsub(".*website/","",APICall))
APICall$Domain<- gsub("/.*","",APICall$Domain)
APICall <- transform(APICall,Country=strtrim(gsub(".*&country=","",APICall$X_data),2))
APICall <- transform(APICall,Date=strtrim(gsub(".*/start_date=","",APICall$X_data),7))

我有一个解决办法(加上两个"aa“国家),但我真的很想知道发生了什么.

系统信息:R3.3.2R Studio版本1.0.143 OS塞拉利昂10_12_3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-14 14:34:35

您似乎希望创建所有可能的组合,但是当您使用一个简单的rep()时,并不能保证您将创建所有可能的组合。

如果你从两个简单的向量开始

代码语言:javascript
复制
domains <- paste(stringi::stri_rand_strings(112, 5, pattern = "[A-Za-z0-9]"),".com")
countries <- c("au","be","fr","nl","pl","ch","us")

您可以使用expand.grid获得所有可能的组合。

代码语言:javascript
复制
expand.grid(domains, countries)

或者如果您使用的是来自tidyr包的tidyverse

代码语言:javascript
复制
tidyr::crossing(domains, countries)

仅仅使用rep()并不能提供所有的组合。例如

代码语言:javascript
复制
x <- letters[1:10]
y <- rep(letters[21:25], length(x))
comb <- paste(x,y)

请注意,

代码语言:javascript
复制
length(comb)
# [1] 50
length(unique(comb))
# [1] 10

所以那里有很多副本。如果一个向量长度可被另一个向量均匀地除以,则重复将在另一个向量的周期内重复,您将不会得到所有可能的组合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49278502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档