【发布时间】:2022-01-16 01:55:27
【问题描述】:
我有几个数据框。我希望第一列是每一行的名称。
我可以这样处理 1 个数据帧:
# Rename the row according the value in the 1st column
row.names(df1) <- df1[,1]
# Remove the 1st column
df1 <- df1[,-1]
但我想在几个数据帧上这样做。我尝试了几种策略,包括分配和一些获取,但没有成功。这是我尝试过的两种主要方法:
# Getting a list of all my dataframes
my_df <- list.files(path="data")
# 1st strategy, adapting what works for 1 dataframe
for (i in 1:length(files_names)) {
rownames(get(my_df[i])) <- get(my_df[[i]])[,1] # The problem seems to be in this line
my_df[i] <- my_df[i][,-1]
}
# The error is Could not find function 'get>-'
# 2nd strategy using assign()
for (i in 1:length(my_df)) {
assign(rownames(get(my_df[[i]])), get(my_df[[i]])[,1]) # The problem seems to be in this line
my_df[i] <- my_df[i][,-1]
}
# The error is : Error in assign(rownames(my_df[i]), get(my_df[[i]])[, 1]) : first argument incorrect
我真的看不出我错过了什么。当我输入get(my_df[i]) 和get(my_df[[i]])[,1] 时,它在控制台中单独运行...
非常感谢那些可以帮助我的人:)
【问题讨论】:
标签: r dataframe for-loop rowname