2017-08-01 66 views
-5

我想为R中的行分配名称,但到目前为止,我只找到了将名称分配给列的方法。我的数据分为两栏,第一栏(地理位置)分配了我正在调查的特定地点的名称,第二栏(skada)是该特定地点的观测值。为了澄清,我希望能够为每个位置分配名称,而不是只将它们全部放在一个.txt文件中,以便数据更容易处理。任何人都比我有更多的经验,知道如何在R中处理这个问题? enter image description here为R中的行分配名称

回答

1

首先,您需要将数据导入到您的全球环境。尝试使用功能read.table()

要行名称,尝试 (假设你的data.frame名为df):

rownames(df) <- df[, "geo"] 
df <- df[, -1] 
+0

当我运行 'rownames(raps_geo_skada)< - raps_geo_skada [“斥责 “] raps_geo_skada < - raps_geo_skada [1,-1]' 我得到一个错误消息,说 ” 在'row.names错误< - data.frame'('* TMP *',值=值): 重复'row.names'不允许 In additi on:警告消息: 设置'row'时的非唯一值。名称':'M120m','M1Kant','M220m','M2Kant','NO120m','NO1Kant','NO220m','NO2Kant','NV120m','NV1Kant','NV220m','NV2Kant' ,'SO120m','SO1Kant','SO220m','SO2Kant','SV120m','SV1Kant','SV220m','SV2Kant'“ 这是否意味着我不能有多个”M120m“请参阅'df < - data.frame(1:3)''rownames(df)< - c(“a”,在行中? –

+0

@AxelRösvik是的,那是正确的。 “a”,“b”)'然而,如果你的整个数据集是例如数值,你可以将数据保存在一个矩阵中,而不是唯一的rownames。参见'mat < - as.matrix(df)''rownames (mat)< - c(“a”,“a”,“b”)' – Pierre

0

嗯,你的问题是不是清楚......

我想你正尝试创建具有命名行的data.frame。如果你看一下data.frame帮助,您可以看到参数row.names描述

NULL或一个整数或字符串指定列用作行名称,或字符或整数向量给出的行名数据帧。

这意味着您可以在创建data.frame或包含名称的列时手动指定行名称。前者可以如下

d = data.frame(x=rnorm(10), # 10 random data normally distributed 
       y=rnorm(10), # 10 random data normally distributed 
       row.names=letters[1:10] # take the first 10 letters and use them as row header 
       ) 

而后者则是

d = data.frame(x=rnorm(10), # 10 random data normally distributed 
       y=rnorm(10), # 10 random data normally distributed 
       r=letters[1:10], # take the first 10 letters 
       row.names=3 # the column with the row headers is the 3rd 
) 

如果你从文件中读取数据,我会假设你正在使用的命令read.table被achived。它的许多参数都相同的data.frame,特别是你会发现row.headers参数的工作方式相同:

行名的载体。这可以是给出实际行名的向量,也可以是给出包含行名的表的列的单个数字,也可以是给出包含行名称的表列名称的字符串。


最后,如果您已经阅读data.frame,并要更改的行名,皮埃尔的答案是你的解决方案