我想将第一列转换为R中的对象,如果输入如下:
#name of df - KPIF
namePill KPIPill
1: pill_tech 0.3
2: pill_EUX 0.2
3: pill_Bus 0.3
输出应该如下:
#name of df - KPIF
KPIPill
pill_tech 0.3
pill_EUX 0.2
pill_Bus 0.3
有人可以帮忙吗? 问候, 亚历山德拉
答案 0 :(得分:1)
首先创建数据框:
KPIF <- data.frame(namePill=c('pill_tech','pill_EUX','pill_Bus'),
KPIPill=c(0.3,0.2,0.3))
KPIF
然后应用rownames:
> rownames(KPIF) <- KPIF[,'namePill']
> KPIF
namePill KPIPill
pill_tech pill_tech 0.3
pill_EUX pill_EUX 0.2
pill_Bus pill_Bus 0.3
然后删除不必要的列,建议您的数据框是一个包含更多列的更大的数据框:
> KPIF <- KPIF[!(colnames(KPIF) %in% 'namePill')]
> KPIF
KPIPill
pill_tech 0.3
pill_EUX 0.2
pill_Bus 0.3
答案 1 :(得分:0)
您可以将所需的矢量(KPIPill
列)保存在新对象中,并为新对象指定另一个矢量(namePill
)names()
:
KPIF <- read.table(text = " namePill KPIPill
1: pill_tech 0.3
2: pill_EUX 0.2
3: pill_Bus 0.3", header = TRUE)
KPIF_named <- KPIF$KPIPill
names(KPIF_named) <- KPIF$namePill
> KPIF_named
pill_tech pill_EUX pill_Bus
0.3 0.2 0.3
答案 2 :(得分:0)
先使用rownames()
然后你可以摆脱第一列:
我假设你做了这样的df:
df=as.data.frame(matrix(c('pill_tech','pill_EUX','pill_Bus',0.3,0.2,0.3),3,2))
否则您只需将其转换为as.data.frame(df)
然后将列namePill分配给rownames()
rownames(df)=df$namePill
然后如果困扰你就可以摆脱列名称
df=df[2]