我想要:
[1] "January has 31 days"
[1] "February has 29 days"
[1] "March has 31 days"
[1] "April has 30 days"
[1] "May has 31 days"
[1] "June has 30 days"
[1] "July has 31 days"
[1] "August has 31 days"
[1] "September has 30 days"
[1] "October has 31 days"
[1] "November has 30 days"
[1] "December has 31 days"
到目前為止,我已經嘗試過:
days <- c("31","29","31","30","31","30","31","31","30","31","30","31")
months <- c("January", "Februari", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
for (i in days){
for (j in months){
cat(j, "has", i, "days\n")
}
}
我創建的回圈回傳每個 j 和 i 12*12 次,這是不正確的。
uj5u.com熱心網友回復:
您正在尋找的是:
days <- c("31","29","31","30","31","30","31","31","30","31","30","31")
months <- c("January", "Februari", "March", "April", "May", "June", "July", "September", "October", "November", "December")
for (i in seq_along(days)){ # seq works but as commented seq_along is the better option
cat(months[i], "has", days[i], "days\n")
}
另外:您在您的月份中缺少 8 月向量
聚苯乙烯
受到@U12-Forward 的啟發,這也有效:
invisible(sapply(1:12, function(x) cat(month.name[x], "has", days[x], "days\n")))
uj5u.com熱心網友回復:
我更喜歡mapply:
> invisible(mapply(function(i, j) cat(j, "has", i, "days\n"), days, months))
January has 31 days
Februari has 29 days
March has 31 days
April has 30 days
May has 31 days
June has 30 days
July has 31 days
August has 31 days
September has 30 days
October has 31 days
November has 30 days
December has 31 days
>
注意:添加了invisible所以mapply不列印的實際結果。
mapply 并行迭代多個向量。
uj5u.com熱心網友回復:
stringr::str_glue()提供了一個不錯的選擇。它是矢量化的。
library("stringr")
days <- c("31", "29", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31")
months <- c("January", "February", "March", "April", "May", "June", "July","August", "September", "October", "November", "December")
str_glue("{months} has {days} days")
#> January has 31 days
#> February has 29 days
#> March has 31 days
#> April has 30 days
#> May has 31 days
#> June has 30 days
#> July has 31 days
#> August has 31 days
#> September has 30 days
#> October has 31 days
#> November has 30 days
#> December has 31 days
由reprex 包(v2.0.1)于 2021 年 10 月 26 日創建
uj5u.com熱心網友回復:
這是一個向量化操作,因此您可以在沒有回圈或apply陳述句的情況下執行此操作。
sprintf('%s has %s days', months, days)
# [1] "January has 31 days" "Februari has 29 days" "March has 31 days"
# [4] "April has 30 days" "May has 31 days" "June has 30 days"
# [7] "July has 31 days" "August has 31 days" "September has 30 days"
#[10] "October has 31 days" "November has 30 days" "December has 31 days"
出于顯示目的,如果您希望每條陳述句都在新行上 -
cat(paste0(sprintf('%s has %s days', months, days), collapse = '\n'))
#January has 31 days
#Februari has 29 days
#March has 31 days
#April has 30 days
#May has 31 days
#June has 30 days
#July has 31 days
#August has 31 days
#September has 30 days
#October has 31 days
#November has 30 days
#December has 31 days
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336870.html
上一篇:為什么ShinyFeedback會覆寫自定義CSS?
下一篇:資料框上的年度移動視窗
