web-dev-qa-db-fra.com

coller du texte avec un retour à la ligne / retour dans un texte formaté

Je veux faire une colonne formatée pour utiliser une adresse postale et je ne peux pas obtenir le retour chariot/retour ou <br/> pour fonctionner lors de la création d'une nouvelle colonne.

name = c("John Smith", "Patty Smith", "Sam Smith")
address = c("111 Main St.", "222 Main St.", "555 C Street")
cityState = c("Portland, OR 97212", "Portland, OR 95212", "Portland, OR 99212")
df <- data.frame(name, address, cityState)

Je veux créer une colonne qui formate les données dans une étiquette d'adresse: John Smith 111 Main st. Portland, OR 97212

Chaque nouvelle colonne: aura un retour après chaque ligne: il s'agit donc toujours de 3 lignes. Une ligne pour chacune des 3 autres colonnes.

# example of what I am trying to do... 
paste0(name, "return", address, "return", cityState).  Everything I have tried does not work for making a newline.
9
Spruce Island

Pour obtenir une nouvelle ligne (ou revenir), nous utilisons \n. Donc

addr = paste(name,  address, cityState, sep="\n")

Pour voir le résultat, utilisez simplement cat

> cat(addr[1])
#John Smith
#111 Main St.
#Portland, OR 97212

La fonction cat s'imprime simplement à l'écran.


L'autre caractère standard est \t pour un espace de tabulation.

10
csgillespie

Vous devez le coller avec une nouvelle ligne (\n) séparateur. Pour l'assembler à partir de df,

addresses <- apply(df, 1, paste, collapse = '\n')

Si vous l'imprimez normalement, il vous montrera le \n personnages:

addresses
## [1] "John Smith\n111 Main St.\nPortland, OR 97212" 
## [2] "Patty Smith\n222 Main St.\nPortland, OR 95212"
## [3] "Sam Smith\n555 C Street\nPortland, OR 99212"  

Pour imprimer avec les sauts de ligne évalués, utilisez cat, également avec sep = '\n' pour insérer des sauts de ligne entre les éléments:

cat(addresses, sep = '\n')
## John Smith
## 111 Main St.
## Portland, OR 97212
## Patty Smith
## 222 Main St.
## Portland, OR 95212
## Sam Smith
## 555 C Street
## Portland, OR 99212
4
alistaire