Как присвоить вывод кошки к объекту?

Почему Вы не используете \n символ в своей строке для определения конца строки? Также добавьте дополнительную обратную косую черту для добавления его по нескольким строкам.

ANNOUNCE_BODY=" \n\
Version $(VERSION) of $(PACKAGE_NAME) has been released \n\
\n\
It can be downloaded from $(DOWNLOAD_URL) \n\
\n\
etc, etc"
19
задан learnr 10 September 2009 в 14:21
поделиться

4 ответа

Вместо cat в файле, почему бы не использовать команду paste для создания строки вместо этого?

> paste(test, collapse="\n")
[1] "V 1\nx\n1 2 3\ny\n3 5 8\nV 2\nx\ny\nV 3\ny\n7 2 1\nV 4\nx\n9 3 7\ny"

Теперь вместо выполнения cat затем readlines , вы можете просто передать эту строку непосредственно в strsplit .

15
ответ дан 30 November 2019 в 02:30
поделиться

Попробуйте

> f <- textConnection("test3", "w")
> cat(test, "\n", file=f)
> test3
[1] "V 1 x 1 2 3 y 3 5 8 V 2 x y V 3 y 7 2 1 V 4 x 9 3 7 y "
> close(f)
4
ответ дан 30 November 2019 в 02:30
поделиться

В качестве более общего решения вы можете использовать функцию вывода захвата. В результате получается вектор символов с элементами, соответствующими каждой строке вывода.

ваш пример:

test2<-capture.output(cat(test))

вот многострочный пример:

> out<-capture.output(summary(lm(hwy~cyl*drv,data=mpg)))
> out
 [1] ""                                                               
 [2] "Call:"                                                          
 [3] "lm(formula = hwy ~ cyl * drv, data = mpg)"                      
 [4] ""                                                               
 [5] "Residuals:"                                                     
 [6] "    Min      1Q  Median      3Q     Max "                       
 [7] "-8.3315 -1.4139 -0.1382  1.6479 13.5861 "                       
 [8] ""                                                               
 [9] "Coefficients:"                                                  
[10] "            Estimate Std. Error t value Pr(>|t|)    "           
[11] "(Intercept)  32.1776     1.2410  25.930  < 2e-16 ***"           
[12] "cyl          -2.0049     0.1859 -10.788  < 2e-16 ***"           
[13] "drvf          8.4009     1.8965   4.430 1.47e-05 ***"           
[14] "drvr          8.2509     6.4243   1.284    0.200    "           
[15] "cyl:drvf     -0.5362     0.3422  -1.567    0.119    "           
[16] "cyl:drvr     -0.5248     0.8379  -0.626    0.532    "           
[17] "---"                                                            
[18] "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 "
[19] ""                                                               
[20] "Residual standard error: 2.995 on 228 degrees of freedom"       
[21] "Multiple R-squared: 0.7524,\tAdjusted R-squared: 0.747 "         
[22] "F-statistic: 138.6 on 5 and 228 DF,  p-value: < 2.2e-16 "       
[23] ""    
33
ответ дан 30 November 2019 в 02:30
поделиться

Также есть оператор assign, который позволяет вам создать имя и установить для него объект. Очень полезно, если вы хотите перебрать кучу тестов и присвоить им имена с динамическими значениями.

assign ("mary", paste (test, sep = "\ n"))

назначит оператор paste для mary. Однако предположим, что вы выполняли несколько регрессий и хотели, чтобы ваши объекты регрессии были названы предиктором. Вы можете сделать что-то вроде

assign(paste("myRegression",names(dataframe)[2],sep=""), lm(dataframe$response~dataframe[,2]))

, что даст вам объект

myRegressionPredictorName в качестве линейной модели.

1
ответ дан 30 November 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: