假设创建一个数据帧的头我有一个数据帧:从第一行中的数据帧
a <- data.frame(a=c("f", 2, 3), b=c("g", 3, 7), c=c("h", 2, 4))
,我想从第一行创建列名。我的猜测是:
names(a) <- a[1,]
这给:
names(a)
[1] "3" "3" "3"
我没有完全得到发生了什么。任何人都可以解释并帮助我如何以正确的方式做到这一点?
假设创建一个数据帧的头我有一个数据帧:从第一行中的数据帧
a <- data.frame(a=c("f", 2, 3), b=c("g", 3, 7), c=c("h", 2, 4))
,我想从第一行创建列名。我的猜测是:
names(a) <- a[1,]
这给:
names(a)
[1] "3" "3" "3"
我没有完全得到发生了什么。任何人都可以解释并帮助我如何以正确的方式做到这一点?
的是与具有不同电平的每一列因素的列。 R将他们投入整数。因为,每一列的字母出现持续的字母数字就被分配值3
尝试
names(a) = as.character(unlist(a[1,]))
names(a)
这个答案中的“as.character”是做什么的? – A5C1D2H2I1M1N2O1R2T1
什么都没有!完全没有它! – user3472874
看起来'name()'将因子转换为字符本身 – SeDur
尝试这种情况:
> colnames(a) <- unlist(a[1,])
> a
f g h
1 f g h
2 2 3 2
3 3 7 4
我不认为“水滴”是必需的,是吗? – A5C1D2H2I1M1N2O1R2T1
你说得对@AnandaMahto,现在是早上8点20分,现在想想R还为时过早,需要一杯咖啡,谢谢你指出了这一点。 –
或8PM对于像我这样的人来说,或许来不及想想R :-) – A5C1D2H2I1M1N2O1R2T1
不知道为什么..但你可以换一个'[1]''在不公开() ' – rawr
为什么你有这个data.frame?看起来像是数据导入/创建过程中应该解决的问题。 – Roland
@Roland我输入一个包含因子和数值数据的csv。因此我不能使用矩阵......如果这是你的意思。 – joaoal