Determine Heart Failure Medications

  1. Review heart failure drug guidelines. References include:

    • Heidenreich PA, Bozkurt B, Aguilar D, et al. 2022 AHA/ACC/HFSA guideline for the Management of Heart Failure: A report of the American College of Cardiology/American Heart Association joint committee on clinical practice guidelines. Circulation. 2022;145(18):e895-e1032.

    • Hood SR, Giazzon AJ, Seamon G, et al. Association between medication adherence and the outcomes of heart failure. Pharmacotherapy. 2018;38(5):539-545.

    • Hamo CE, Mukhopadhyay A, Li X, et al. Association between visit frequency, continuity of care, and pharmacy fill adherence in heart failure patients. Am Heart J. 2024;273:53-60.

    • Mukhopadhyay A, Blecker S, Li X, et al. Neighborhood-level socioeconomic status and prescription fill patterns among patients with heart failure. JAMA Netw Open. 2023;6(12):e2347519.

    • Yancy CW, Jessup M, Bozkurt B, et al. 2017 ACC/AHA/HFSA focused update of the 2013 ACCF/AHA guideline for the management of heart failure: A report of the American college of cardiology/American heart association task force on clinical practice guidelines and the heart failure society of America. J Card Fail. 2017;23(8):628-651.

    • Heart Failure Society of America. Executive summary: HFSA 2010 comprehensive heart failure practice guideline. J Card Fail. 2010;16(6):475-539.

    • Garred CH, Zahir D, Butt JH, et al. Adherence and discontinuation of optimal heart failure therapies according to age: A danish nationwide study. J Am Heart Assoc. 2022;11(19):e026187.

  2. The medications included as Guideline-Directed Medical Therapy (GDMT) included the following classes, grouped into four categories:

    • Beta Blockers (BB)

    • Angiotensin-Converting Enzyme I nhibitor (ACEI), Angiotensin Receptor Blocker (ARB), or Angiotensin Receptor-Neprilysin Inhibitor (ARNI)

    • Mineralocorticoid Receptor Antagonist (MRA)

    • Sodium-Glucose Cotransporter 2 Inhibitor (SGLT2i)

    • Other drug classes used in heart failure but NOT included in this study due to lack of use in the literature: Diuretics, Hydral Nitrates, I Channel Inhibitors, Soluble Guanylate Cyclase Simulator, and Cardiac Glycoside

  3. The full list of medications included as GDMT, broken down by medication class. For each medication, long-acting, short-acting, brand-name, and combination drug formulations were all included.

    • BB: Bisoprolol, Carvedilol, Metoprolol (Succinate or Tartrate)

    • ACEI: Benazepril, Captopril, Enalapril, Fosinopril, Lisinopril, Moexipril, Perindopril, Quinapril, Ramipril, Trandolapril

    • ARB: Azilsartan, Candesartan, Eprosartan, Irbesartan, Losartan, Olmesartan, Telmisartan, Valsartan

    • ARNI: Sacubritil/Valsartan

    • MRA: Epleronone, Spironolactone

    • SGLT2i:Dapagliflozin, Empagliflozin

    • Medications for each class were taken from 2022 AHA/ACC/HFSA Heart Failure Guidelines as well as 2023 paper by Mukhopadhyay et. al.

Pulling the NDC Dataset

  1. Download FDA National Drug Code Directory as .txt file

  2. Link to FDA National Drug Code Directory

  3. Import “Product.txt” file into R

All_NDC <- read.delim("~/Downloads/ndctext/product.txt")
  1. Filter datas set by requested NDCs;
    • Search the All_NDC data set “NonProprietaryName” column to ensure capturing all spelling and capitalization for each drug product (may not be necessary if adjust Case Sensitivity)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
HF_NDC <- filter(All_NDC, 
                   NONPROPRIETARYNAME == "bisoprolol fumarate" |
                   NONPROPRIETARYNAME == "Bisoprolol fumarate" |
                   NONPROPRIETARYNAME == "Bisoprolol Fumarate" |
                   NONPROPRIETARYNAME == "BISOPROLOL FUMARATE" |
                   NONPROPRIETARYNAME == "bisoprolol fumarate and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Bisoprolol Fumarate and Hydrochlorothiazide" |
                   
                   NONPROPRIETARYNAME == "Carvedilol" |
                   NONPROPRIETARYNAME == "CARVEDILOL" |
                   NONPROPRIETARYNAME == "carvedilol phosphate" |
                   NONPROPRIETARYNAME == "Carvedilol Phosphate" |
                   NONPROPRIETARYNAME == "CARVEDILOL PHOSPHATE" |
                   
                   NONPROPRIETARYNAME == "METOPROLOL" |
                   
                   NONPROPRIETARYNAME == "Metoprolol Succinate" |
                   NONPROPRIETARYNAME == "Metoprolol succinate" |
                   NONPROPRIETARYNAME == "metoprolol succinate" |
                   NONPROPRIETARYNAME == "METOPROLOL SUCCINATE" |
                   NONPROPRIETARYNAME == "Metoprolol Succinate ER Tablets" |
                   
                   NONPROPRIETARYNAME == "Metoprolol Tartrate" |
                   NONPROPRIETARYNAME == "Metoprolol tartrate" |
                   NONPROPRIETARYNAME == "metoprolol tartrate" |
                   NONPROPRIETARYNAME == "METOPROLOL TARTRATE" |
                   NONPROPRIETARYNAME == "metoprolol tartrate and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Metoprolol Tartrate and Hydrochlorothiazide" |
            
                   NONPROPRIETARYNAME == "Benazepril" |
                   NONPROPRIETARYNAME == "Amlodipine and Benazepril Hydrochloride" |
                   NONPROPRIETARYNAME == "AMLODIPINE AND BENAZEPRIL HYDROCHLORIDE" |
                   NONPROPRIETARYNAME == "amlodipine besylate and benazepril hydrochloride" |
                   NONPROPRIETARYNAME == "Amlodipine Besylate and Benazepril Hydrochloride" |
                   NONPROPRIETARYNAME == "benazepril hydrochloride" |
                   NONPROPRIETARYNAME == "Benazepril Hydrochloride" |
                   NONPROPRIETARYNAME == "Benazepril hydrochloride" |
                   NONPROPRIETARYNAME == "benazepril hydrochloride and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Benazepril Hydrochloride and HydrochlorothiazideE" |
                   NONPROPRIETARYNAME == "BENAZEPRIL HYDROCHLORIDE" |
                   
                   NONPROPRIETARYNAME == "Captopril" |
                   NONPROPRIETARYNAME == "captopril" |
                   NONPROPRIETARYNAME == "CAPTOPRIL AND HYDROCHLOROTHIAZIDE" |
          
                   NONPROPRIETARYNAME == "enalapril maleate" |
                   NONPROPRIETARYNAME == "Enalapril" |
                   NONPROPRIETARYNAME == "Enalapril maleate" |
                   NONPROPRIETARYNAME == "Enalapril Maleate" |
                   NONPROPRIETARYNAME == "ENALAPRIL MALEATE" |
                   NONPROPRIETARYNAME == "enalapril maleate and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Enalapril maleate and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Enalapril Maleate and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Enalapril Maleate Oral Solution" |
                   
                   
                   NONPROPRIETARYNAME == "Fosinopril" |
                   NONPROPRIETARYNAME == "fosinopirl sodium" |
                   NONPROPRIETARYNAME == "Fosinopril sodium" |
                   NONPROPRIETARYNAME == "Fosinopril Sodium" |
                   NONPROPRIETARYNAME == "Fosinopril Sodium and Hydrochlorothiazide" |
                   
                   NONPROPRIETARYNAME == "Lisinopril" |
                   NONPROPRIETARYNAME == "lisinopril" |
                   NONPROPRIETARYNAME == "LISINOPRIL" |
                   NONPROPRIETARYNAME == "lisinopril and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Lisinopril and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Lisinopril and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "LISINOPRIL and HYDROCHLOROTHIAZIDE" |
                   NONPROPRIETARYNAME == "LISINOPRIL AND HYDROCHLOROTHIAZIDE" |
                   NONPROPRIETARYNAME == "Lisinopril and Hydrochlorothiazide Tablets" |
                   NONPROPRIETARYNAME == "Lisinopril/HCTZ" |
                   
                   NONPROPRIETARYNAME == "Moexipril Hydrochloride" |
                   
                   NONPROPRIETARYNAME == "Perindopril Erbumine" |
                   
                   NONPROPRIETARYNAME == "Quinapril" |
                   NONPROPRIETARYNAME == "quinapril" |
                   NONPROPRIETARYNAME == "Quinapril and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "quinapril and Hydrochlorothiazide 10/12.5" |
                   NONPROPRIETARYNAME == "Quinapril and Hydrochlorothiazide 20/12.5" |
                   NONPROPRIETARYNAME == "Quinapril and Hydrochlorothiazide 20/25" |
                   NONPROPRIETARYNAME == "Quinapril HCl and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Quinapril HCL and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Quinapril Hydrochloride" |
                   NONPROPRIETARYNAME == "QUINAPRIL HYDROCHLORIDE/HYDROCHLOROTHIAZIDE" |
                   
                   NONPROPRIETARYNAME == "Ramipril" |
                   NONPROPRIETARYNAME == "ramipril" |
                   
                   NONPROPRIETARYNAME == "Trandolapril" |
                   NONPROPRIETARYNAME == "Trandolapril and Verapamil Hydrochloride" |
                   NONPROPRIETARYNAME == "Trandolapril Tablets" |
                   
                   NONPROPRIETARYNAME == "Azilsartan kamedoxomil and chlorthalidone" |
                   NONPROPRIETARYNAME == "Azilsartan kamedoxomil" |
                   
                   NONPROPRIETARYNAME == "Candesartan" |
                   NONPROPRIETARYNAME == "candesartan cilexetil" |
                   NONPROPRIETARYNAME == "Candesartan cilexetil" |
                   NONPROPRIETARYNAME == "Candesartan Cilexetil" |
                   NONPROPRIETARYNAME == "CANDESARTAN CILEXETIL" |
                   NONPROPRIETARYNAME == "candesartan cilexetil and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Candesartan Cilexetil and Hydrochlorothiazide" |
                   
                   NONPROPRIETARYNAME == "Eprosartan" |
                   
                   NONPROPRIETARYNAME == "Irbesartan" |
                   NONPROPRIETARYNAME == "irbesartan" |
                   NONPROPRIETARYNAME == "IRBESARTAN" |
                   NONPROPRIETARYNAME == "irbesartan and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Irbesartan and Hydrochlorothiazide" |
                   
                   NONPROPRIETARYNAME == "Losartan" |
                   NONPROPRIETARYNAME == "losartan potassium" |
                   NONPROPRIETARYNAME == "Losartan potassium" |
                   NONPROPRIETARYNAME == "Losartan Potassium" |
                   NONPROPRIETARYNAME == "LOSARTAN POTASSIUM" |
                   NONPROPRIETARYNAME == "losartan potassium and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Losartan potassium and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Losartan Potassium and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "LOSARTAN POTASSIUM AND HYDROCHLOROTHIAZIDE" |
                   
                   NONPROPRIETARYNAME == "Olmesartan" |
                   NONPROPRIETARYNAME == "Aamlodipine and Olmesartan Medoxomil" |
                   NONPROPRIETARYNAME == "Amlodipine and olmesartan Medoxomil" |
                   NONPROPRIETARYNAME == "Amlodipine and Olmesartan Medoxomil" |
                   NONPROPRIETARYNAME == "AMLODIPINE and OLMESARTAN medoxomil" |
                   NONPROPRIETARYNAME == "amlodipine besylate and olmesartan medoxomil" |
                   NONPROPRIETARYNAME == "Amlodipine besylate and Olmesartan medoxomil" |
                   NONPROPRIETARYNAME == "olmesartan medoxomil" |
                   NONPROPRIETARYNAME == "Olmesartan medoxomil" |
                   NONPROPRIETARYNAME == "Olmesartan Medoxomil" |
                   NONPROPRIETARYNAME == "OLMESARTAN MEDOXOMIL" |
                   NONPROPRIETARYNAME == "olmesartan medoxomil / amlodipine besylate / hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Olmesartan medoxomil Amlodipine and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "olmesartan medoxomil and amlodipine besylate and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "olmesartan medoxomil and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Olmesartan medoxomil and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Olmesartan Medoxomil and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "OLMESARTAN MEDOXOMIL and HYDROCHLOROTHIAZIDE" |
                   NONPROPRIETARYNAME == "OLMESARTAN MEDOXOMIL AND HYDROCHLOROTHIAZIDE" |
                   NONPROPRIETARYNAME == "olmesartan medoxomil-hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Olmesartan medoxomil, amlodipine and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Olmesartan Medoxomil, Amlodipine and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Olmesartan Medoxomil, Amlodipine and Hydrochlorothiazide Tablet 20/5/12.5 mg" |
                   
                   
                   NONPROPRIETARYNAME == "Telmisartan" |
                   NONPROPRIETARYNAME == "telmisartan" |
                   NONPROPRIETARYNAME == "TELMISARTAN" |
                   NONPROPRIETARYNAME == "telmisartan and amlodipine" |
                   NONPROPRIETARYNAME == "Telmisartan and Amlodipine" |
                   NONPROPRIETARYNAME == "telmisartan and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Telmisartan and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "telmisartan, amlodipine and indapamide" |
                   
                   NONPROPRIETARYNAME == "amlodipine and valsartan" |
                   NONPROPRIETARYNAME == "Amlodipine and valsartan" |
                   NONPROPRIETARYNAME == "Amlodipine and Valsartan" |
                   NONPROPRIETARYNAME == "AMLODIPINE AND VALSARTAN" |
                   NONPROPRIETARYNAME == "amlodipine besylate valsartan hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "amlodipine besylate and valsartan" |
                   NONPROPRIETARYNAME == "amlodipine valsartan and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Amlodipine, Valsartan and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "amlodipine,valsartan and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "valsartan" |
                   NONPROPRIETARYNAME == "Valsartan" |
                   NONPROPRIETARYNAME == "VALSARTAN" |
                   NONPROPRIETARYNAME == "valsartan and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Valsartan and Hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Valsartan oral" |
                   
                   NONPROPRIETARYNAME == "sacubitril and valsartan" |
                   NONPROPRIETARYNAME == "Sacubitril and valsartan" |
                   NONPROPRIETARYNAME == "Sacubitril and Valsartan" |
                   
                   NONPROPRIETARYNAME == "eplerenone" |
                   NONPROPRIETARYNAME == "Eplerenone" |
                   NONPROPRIETARYNAME == "EPLERENONE" |
                   
                   NONPROPRIETARYNAME == "spironolactone" |
                   NONPROPRIETARYNAME == "Spironolactone" |
                   NONPROPRIETARYNAME == "SPIRONOLACTONE" |
                   NONPROPRIETARYNAME == "spironolactone and hydrochlorothiazide" |
                   NONPROPRIETARYNAME == "Spironolactone and Hydrochlorothiazide" |
                   
                   NONPROPRIETARYNAME == "DAPAGLIFLOZIN" |
                   NONPROPRIETARYNAME == "dapagliflozin and metformin hydrochloride" |
                   NONPROPRIETARYNAME == "dapagliflozin and saxagliptin" |
                   
                   NONPROPRIETARYNAME == "Empagliflozin" |
                   NONPROPRIETARYNAME == "empagliflozin and linagliptin" |
                   NONPROPRIETARYNAME == "empagliflozin and metformin hydrochloride" |
                   NONPROPRIETARYNAME == "empagliflozin, linagliptin, metformin hydrochloride" |
                   NONPROPRIETARYNAME == "empagliflozin, metformin hydrochloride")
  1. Convert data set from 8 to 9 digit NDC code
    • NDCs are provided by the database in 8 and 9 digit format, eliminating the 2-digit “package code” at the end of the typical 5-4-2 format. This is represented in the example below with an “-X”

      • The “package code” was eliminated to improve inclusion of medications in the claims data, regardless of their package size (e.g., a 100 count stock bottle vs. 1000 count stock bottle). However, a similar process could be conducted by importing the “package.txt” file instead of the “product.txt” file above. The process would then be to convert the data set from 10 to 11 digit NDC code.
    • To convert to a standard 9 digit NDC code (would be 11-digit NDC code if including the package code) requires adding a “0” based on the existing NDC format.

      Converting NDCs from 8 to 9 Digits
      8-Digit Format on Package 8-Digit Format Example 9-Digit Format on Package 9-Digit Format Example
      4-4-X 9999-9999-X 5-4-X 09999-9999-X
      5-3-X 99999-999-X 5-4-X 99999-0999-X
##Load Packages##
library(stats)
library(readr)
library(compare)
## 
## Attaching package: 'compare'
## The following object is masked from 'package:base':
## 
##     isTRUE
#Subset the Dataset##
NDC_8 <- subset(HF_NDC, select = c("PRODUCTNDC","DOSAGEFORMNAME", "LABELERNAME", "SUBSTANCENAME", "ACTIVE_NUMERATOR_STRENGTH","PHARM_CLASSES"))

unique_NDC_8 <- unique(NDC_8)

#Identify the NDC Package Code by Format#
#NDC can be formatted as 4-4 or 5-3 (see above)#

isFmt44 <- grepl("[[:alnum:]]{4}-[[:alnum:]]{4}", unique_NDC_8$PRODUCTNDC)
isFmt53 <- grepl("[[:alnum:]]{5}-[[:alnum:]]{3}", unique_NDC_8$PRODUCTNDC)
fmt <- rep(NA, nrow(unique_NDC_8))
fmt[isFmt44] <- "4-4 format"
fmt[isFmt53] <- "5-3 format"
table(fmt, useNA="ifany")
## fmt
## 4-4 format 5-3 format 
##        236       2869
##Extract NDC Code by Format##
NDC_44 <- unique_NDC_8[isFmt44,]
NDC_53 <- unique_NDC_8[isFmt53,]


unique_NDC_8$fmtNDC <- format(fmt)


##Conversion##
#Convert 8-digit NDC to 9-digit NDC at this step#

ndcSplit <- strsplit(unique_NDC_8$PRODUCTNDC, "-")
ndcSplit <- data.frame(matrix(unlist(ndcSplit), ncol=2, byrow=TRUE))

unique_NDC_8$ndcFmt9[isFmt44] <- paste0("0", ndcSplit$X1[isFmt44],      
                                         ndcSplit$X2[isFmt44],      
                                         ndcSplit$X3[isFmt44])
unique_NDC_8$ndcFmt9[isFmt53] <- paste0(     ndcSplit$X1[isFmt53], 
                                              "0", ndcSplit$X2[isFmt53],   
                                              ndcSplit$X3[isFmt53])


f <- "NDCTable.txt"
write.table(unique_NDC_8, f, quote=FALSE, sep="\t", row.names=FALSE)

names(unique_NDC_8)
## [1] "PRODUCTNDC"                "DOSAGEFORMNAME"           
## [3] "LABELERNAME"               "SUBSTANCENAME"            
## [5] "ACTIVE_NUMERATOR_STRENGTH" "PHARM_CLASSES"            
## [7] "fmtNDC"                    "ndcFmt9"
str(unique_NDC_8)
## 'data.frame':    3105 obs. of  8 variables:
##  $ PRODUCTNDC               : chr  "0024-5851" "0024-5852" "0024-5855" "0024-5856" ...
##  $ DOSAGEFORMNAME           : chr  "TABLET, FILM COATED" "TABLET, FILM COATED" "TABLET, FILM COATED" "TABLET, FILM COATED" ...
##  $ LABELERNAME              : chr  "Sanofi-Aventis U.S. LLC" "Sanofi-Aventis U.S. LLC" "Sanofi-Aventis U.S. LLC" "Sanofi-Aventis U.S. LLC" ...
##  $ SUBSTANCENAME            : chr  "IRBESARTAN" "IRBESARTAN" "HYDROCHLOROTHIAZIDE; IRBESARTAN" "HYDROCHLOROTHIAZIDE; IRBESARTAN" ...
##  $ ACTIVE_NUMERATOR_STRENGTH: chr  "150" "300" "12.5; 150" "12.5; 300" ...
##  $ PHARM_CLASSES            : chr  "Angiotensin 2 Receptor Antagonists [MoA], Angiotensin 2 Receptor Blocker [EPC]" "Angiotensin 2 Receptor Antagonists [MoA], Angiotensin 2 Receptor Blocker [EPC]" "Angiotensin 2 Receptor Antagonists [MoA], Angiotensin 2 Receptor Blocker [EPC], Increased Diuresis [PE], Thiazi"| __truncated__ "Angiotensin 2 Receptor Antagonists [MoA], Angiotensin 2 Receptor Blocker [EPC], Increased Diuresis [PE], Thiazi"| __truncated__ ...
##  $ fmtNDC                   : chr  "4-4 format" "4-4 format" "4-4 format" "4-4 format" ...
##  $ ndcFmt9                  : chr  "000245851" "000245852" "000245855" "000245856" ...

Save Final CSV

  1. Save list as CSV File
write.csv(unique_NDC_8, "9DigitNDC.csv", row.names=FALSE)
write.csv(HF_NDC, "HeartFailure_NDC.csv")

Compare to Aline’s

library(tidyr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.1     ✔ purrr     1.2.1
## ✔ ggplot2   4.0.1     ✔ stringr   1.6.0
## ✔ lubridate 1.9.4     ✔ tibble    3.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Aline_All <- read.csv("~/Downloads/ndctext/Aline.csv")

Aline_Subset <- subset(Aline_All, select = c("Product.NDC", "Substance.Name", "NDC.Package.Code"))

Aline_Join <- Aline_Subset %>%
  mutate(chop_NDC = substr(Aline_Subset$Product.NDC, 1, 9))


BothNDC <- full_join(
  unique_NDC_8,
  Aline_Join,
  by = join_by( PRODUCTNDC == chop_NDC),
)

write.csv(BothNDC, "AlineTaylorMerge.csv", row.names=FALSE)