我希望格式化矢量的输出,以便在每个X元素的换行符上打印。
例如,假设我想在字母表的每个第4个字母上打印并格式化输出:
'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L',
'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X',
'Y', 'Z'
这是我尝试过的没有效果的因为我无法打印到矢量的末尾。
start_range <- 1
for (i in 1:length(LETTERS)){
if (i %% 4 == 0){
print(paste0(LETTERS[start_range:i], collapse = "', '"))
start_range <- start_range + 4
}
}
# Output
'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L',
'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X',
错过&#39; Y&#39;和&#39; Z&#39;。这种方法显然是错误的,更好的方法是什么?
答案 0 :(得分:0)
我相信以下情况会这样做 对不起该功能的名称,请注明,我将对其进行编辑。
james <- function(x, n = 4){
chunks <- length(x) %/% n
for (i in seq_len(chunks)){
cat(paste0("'", x[(n*(i - 1) + 1):(n*i)], "'", collapse = ", "), "\n")
}
cat(paste0("'", x[(n*i + 1):length(x)], "'", collapse = ", "), "\n")
}
james(LETTERS)
#'A', 'B', 'C', 'D'
#'E', 'F', 'G', 'H'
#'I', 'J', 'K', 'L'
#'M', 'N', 'O', 'P'
#'Q', 'R', 'S', 'T'
#'U', 'V', 'W', 'X'
#'Y', 'Z'
答案 1 :(得分:-1)
试试这个:
lst <- c('A', 'B', 'C', 'D',
'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L',
'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X',
'Y', 'Z')
print(lst[seq(1:length(lst)) %% 4 == 0])
[1] "D" "H" "L" "P" "T" "X"