কোনও কলামের মানগুলিকে আর-তে বিদ্যমান ডেটা ফ্রেমের সারি নামে রূপান্তর করুন


108

আমি বিদ্যমান ডাটা ফ্রেমের কলামের মানগুলিকে সারি নামে রূপান্তর করতে চাই। ডেটা ফ্রেম রফতানি না করে এবং তারপরে কোনও row.names =কল দিয়ে এটিকে পুনরায় আমদানি না করা কি সম্ভব ?

উদাহরণস্বরূপ আমি রূপান্তর করতে চাই:

 > samp 
     names Var.1 Var.2 Var.3
 1     A     1     5     0
 2     B     2     4     1
 3     C     3     3     2
 4     D     4     2     3
 5     E     5     1     4

মধ্যে:

> samp.with.rownames 
     Var.1 Var.2 Var.3
A     1     5     0
B     2     4     1
C     3     3     2
D     4     2     3
E     5     1     4

ধন্যবাদ

উত্তর:


135

এটি করা উচিত:

samp2 <- samp[,-1]
rownames(samp2) <- samp[,1]

সুতরাং সংক্ষেপে, পুনরায় নিয়োগের বিকল্প নেই।

সম্পাদনা করুন: নিজেকে সংশোধন করে, কেউ এটি জায়গায় এটি করতে পারে: রোনামের বৈশিষ্ট্য নির্ধারণ করুন, তারপরে কলামটি সরান:

R> df<-data.frame(a=letters[1:10], b=1:10, c=LETTERS[1:10])
R> rownames(df) <- df[,1]
R> df[,1] <- NULL
R> df
   b c
a  1 A
b  2 B
c  3 C
d  4 D
e  5 E
f  6 F
g  7 G
h  8 H
i  9 I
j 10 J
R> 

4
> rownames (df) <- df [, 1] এ ত্রুটি row.names<-.data.frame( *tmp*, মান = মান): অবৈধ 'সারি.নাম' দৈর্ঘ্য ছাড়াও: সতর্কতা বার্তা: একটি সজ্জার উপর সারি নাম নির্ধারণ করা হ্রাস করা হয়।
ব্যবহারকারী 3673

36

২০১ of সালের হিসাবে আপনি এটিও ব্যবহার করতে পারেন tidyverse

library(tidyverse)
samp %>% remove_rownames %>% column_to_rownames(var="names")

1
আরও সুনির্দিষ্টভাবে, এটি হলtibble::column_to_rownames
অটো টমেট

1
আমি একটি সতর্কতা পেয়েছি "একটি কাঠের উপর সারি নাম নির্ধারণ করা অবমূল্যায়ন করা হয়েছে"
কোয়ান্টাম 7

1
টিবল ভিজ্যুয়ালাইজেশন রোনামগুলি দেখায় না, যদিও এটি দেখতে আপনাকে এটি as.data.frame ()samp %>% remove_rownames %>% column_to_rownames(var="names") %>% as.data.frame()
মাত্তেও


11

আপনি এটি 2 সাধারণ বিবৃতিতে কার্যকর করতে পারেন:

row.names(samp) <- samp$names
samp[1] <- NULL

আর 3.5.3 এ কাজ করে
TheSciGuy

5

দেখে মনে হচ্ছে ওয়ান-লাইনারটি লাইন ধরে আরও সহজ হয়ে গেছে (বর্তমানে আর 3.5.3 ব্যবহার করছে):

# generate original data.frame
df <- data.frame(a = letters[1:10], b = 1:10, c = LETTERS[1:10])
# use first column for row names
df <- data.frame(df, row.names = 1)

সারি নামের জন্য ব্যবহৃত কলামটি স্বয়ংক্রিয়ভাবে সরানো হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.