我有一个简单的文本文件,其中第一列是名称(字符串),第二列是值(浮点数)。
Name, Age
John, 32
Heather, 46,
Jake, 23
Sally, 19
我想把它作为一个 Dataframe 读入(把它叫做df
),但是要调换位置,这样我就可以通过名字访问age,这样df$John
就会返回32
。
之前,我尝试创建一个新的 Dataframe tdf
,在for
循环中遍历数据,分配每个name
和age
,然后作为tdf[name] = age
插入到空 Dataframe 中,但这并不像我预期的那样工作。
4条答案
按热度按时间unhi4e5o1#
您可以使用
read.table()
读取数据。然后可以使用
t()
对其进行转置,并在之后设置列名。示例:
如果df为:
你可以转换年龄,然后把它们转换成 Dataframe :
因此tdf将返回:
正如您所问,tdf $John将返回:
现在,如果您有两个以上的列,您可以执行相同的操作,但您可以使用括号简单地指示位置,而不是指示列的名称。
使用t(df [2:ncol(df)])可以从第二列开始转置整个表,而不管列数是多少,第一列将是转置后的名称。
然后设置列名。
mzaanser2#
这将在您读取文件时添加行作为标题
kupeojn63#
将数据读入 Dataframe
DF
(参见注解)。**1)**将名字分配给
DF
的行,在这种情况下,这将给予John的年龄,而不必创建新的数据结构:**2)**或者,将
DF
拆分为一个命名列表,这样您可以获得所需的精确语法:**3)**此备选方案也将创建相同的列表:
注:
DF
的可重复形式如下所示。(我们已经删除了问题中一行的尾随逗号,但如果它确实存在,则在read.csv
行添加fill = TRUE。)vnjpjtjt4#
有点晚了,但希望能有所帮助。“row.names”参数允许您选择所需的列作为标题: