Base R handles CSV, TSV and R binary objects (RDS). For Excel files use readxl::read_excel(); for large files prefer data.table::fread(). Always use relative paths and stringsAsFactors = FALSE (default since R 4.0).
# Read CSV
df <- read.csv("data/traits.csv")
df <- read.csv("data/traits.csv", sep = ";", dec = ",") # European format
# Read TSV
df <- read.table("data/traits.txt", header = TRUE, sep = "\t")
# Read Excel (requires readxl)
# install.packages("readxl")
df <- readxl::read_excel("data/traits.xlsx", sheet = "Sheet1")
# Write
write.csv(df, "data/output.csv", row.names = FALSE)
write.table(df, "data/output.txt", sep = "\t", row.names = FALSE, quote = FALSE)
# R binary (fast, preserves R objects exactly)
saveRDS(df, "data/traits.rds")
df <- readRDS("data/traits.rds")
# Check files
file.exists("data/traits.csv")
list.files("data/", pattern = "\\.csv$")