#r
#r
Вопрос:
У меня есть данные в виде
-418 -26066 -539 -33810
-763 -47745 207 12395
-701 14732 473 -8748
862 -19061 744 -16347
680 59377 -637 -53885
-720 35840 -486 23906
-147 3505 762 -20129
677 -53800 849 -67388
-690 42730 995 -63425
203 -4108 620 -11614
93 -6381 26 -1423
-230 -6255 135 3600
498 -8020 341 -5665
855 -35988 306 -12381
69 -4017 -329 17475
и мой код
library(data.table)
x1 <- Problem10_data$V1
y1 <- Problem10_data$V2
x2 <- Problem10_data$V3
y2 <- Problem10_data$V4
a = (y2 - y1) / (x2 - x1)
b = (x2*y1 - x1*y2) / (x2 - x1)
points <- transpose(data.frame(a = a, b = b))
for (var in points){
cat('(', var, ')', sep = " ")
}
мой вывод
( 64 686 )( 62 -439 )( -20 712 )
но то, что я хочу, это
(64 686) (62 -439) (-20 712)
итак, я попытался использовать также печать и форматирование и т. Д. Но я не смог добиться успеха. Любая помощь будет оценена.
Ответ №1:
Почему бы не использовать это небольшое изменение в вашем cat
заявлении?
cat("(",paste(var,collapse=" "),") ",sep="")
Я рассматриваю этот упрощенный пример:
points=list(c(1,-2),c(10,-20))
for (var in points)
cat("(",paste(var,collapse=" "),") ",sep="")
Я получаю
(1 -2) (10 -20)
Ответ №2:
Как насчет этого, используя sprintf()
Problem10_data <- tibble::tribble(
~V1, ~V2, ~V3, ~V4,
-418, -26066, -539, -33810,
-763, -47745, 207, 12395,
-701, 14732, 473, -8748,
862, -19061, 744, -16347,
680, 59377, -637, -53885,
-720, 35840, -486, 23906,
-147, 3505, 762, -20129,
677, -53800, 849, -67388,
-690, 42730, 995, -63425,
203, -4108, 620, -11614,
93, -6381, 26, -1423,
-230, -6255, 135, 3600,
498, -8020, 341, -5665,
855, -35988, 306, -12381,
69, -4017, -329, 17475)
sprintf("(%.0f %.0f)", points[1,], points[2,])
# [1] "(64 686)" "(62 -439)" "(-20 712)" "(-23 765)" "(86 897)" "(-51 -880)" "(-26 -317)" "(-79 -317)"
# [9] "(-63 -740)" "(-18 -454)" "(-74 501)" "(27 -45)" "(-15 -550)" "(-43 777)" "(-54 -291)"
Или, если это должно быть все в одной строке:
paste(sprintf("(%.0f %.0f)", points[1,], points[2,]), collapse=" ")
# [1] "(64 686) (62 -439) (-20 712) (-23 765) (86 897) (-51 -880) (-26 -317) (-79 -317) (-63 -740) (-18 -454) (-74 501) (27 -45) (-15 -550) (-43 777) (-54 -291)"
Комментарии:
1. Не могли бы вы настроить код так, чтобы он работал для моего кода. Мне не нужен совершенно новый код..