我已经想通了,如果我使用as.character(df[x,y])
或as.<whatever>df[x,y]
我能得到/强迫我需要什么,从我的数据每天的时间框架访问R数据框中的单个元素有时会返回一个List?
我似乎无法找到/弄清楚就是为什么。下面的细节。
当我访问df[1,1]
(或任何在第1列),我得到
df[1,1]
[1] a
Levels: a b c
但是当我访问1,3-它工作正常
> df[1,3]
[1] 10
但后来当我使用as.character()
有用。
> as.character(df[1,1])
[1] "a"
数据帧是用这条线
df = data.frame(names = c("a","b","c"), size = c(1,2,3),num = c(10,20,30))
> df
names size num
1 a 1 10
2 b 2 20
3 c 3 30
但在这个数据帧
imp2met = read.csv('tomet.csv', header = TRUE, sep=",",dec='.')
> imp2met
unit mult ret
1 (yd) 0.9100 (m)
2 (in) 2.5200 (cm)
3 .....
我得到这些结果1,3
> imp2met[1,3]
[1] (m)
Levels: (c) (cm) (cm^2) ....
>
> as.character(imp2met[1,3])
[1] "(m)"
建
那么为什么“随机”结果呢?为什么我需要as.<whatever>()
,但只有部分时间?
您使用'as。当你在不同类型之间进行转换时,你需要使用''。在你的情况下,你正在将因素转换为字符。看起来你对R中的因素数据类型知之甚少。 – Suren
是的,我所经历的教程没有提及因素。我看了他们,谢谢! –