将数据框列设置为R data.frame对象的索引

brn*_*792 23 r

使用R,如何将数据帧的列作为数据帧的索引?让我们假设我从.csv文件中读取数据.其中一列称为"日期",我想将该列作为我的数据帧的索引.

例如在Python,NumPy,Pandas; 我会做以下事情:

df = pd.read_csv('/mydata.csv')
d = df.set_index('Date')
Run Code Online (Sandbox Code Playgroud)

现在我如何在R中做到这一点?

我试过R:

df <- read.csv("/mydata.csv")
d <- data.frame(V1=df['Date'])
# or
d <- data.frame(Index=df['Date'])

# but these just make a new dataframe with one 'Date' column. 
#The Index is still 0,1,2,3... and not my Dates.
Run Code Online (Sandbox Code Playgroud)

Mat*_*erg 34

我假设"索引"是指行名称.您可以指定行名称向量:

rownames(df) <- df$Date
Run Code Online (Sandbox Code Playgroud)

  • 但它将日期保留为数据框的一列...如何从列中删除它? (2认同)
  • 您可以通过将 `NULL` 分配给列来删除它:`df$Date &lt;- NULL` (2认同)

Koo*_*133 15

tidyverse解决方案:

library(tidyverse)
df %>% column_to_rownames(., var = "Date")
Run Code Online (Sandbox Code Playgroud)


bli*_*bli 6

在pandas和R中读取数据时可以设置索引.

在熊猫:

import pandas as pd
df = pd.read_csv('/mydata.csv', index_col="Date")
Run Code Online (Sandbox Code Playgroud)

在R:

df <- read.csv("/mydata.csv", header=TRUE, row.names="Date")
Run Code Online (Sandbox Code Playgroud)