কীভাবে আর ডেটা.ফ্রেম থেকে সারি পাবেন


103

আমার কাছে কলাম শিরোনাম সহ একটি ডেটা ফ্রেম রয়েছে।

কীভাবে আমি তালিকা হিসাবে ডেটা.ফ্রেম থেকে একটি নির্দিষ্ট সারি পেতে পারি (তালিকার কী হিসাবে কলাম শিরোনাম সহ)?

বিশেষত, আমার ডেটা ফ্রেমটি হ'ল

      অ আ ক খ
    1 5 4.25 4.5
    2 3.5 4 2.5
    3 3.25 4 4
    4 4.25 4.5 2.25
    5 1.5 4.5 3

এবং আমি একটি সারি পেতে চাই যে এর সমতুল্য

> c(a=5, b=4.25, c=4.5)
  a   b   c 
5.0 4.25 4.5 

উত্তর:


128
x[r,]

আপনি যে সারিটি আগ্রহী সেটিতে r কী রয়েছে Try উদাহরণস্বরূপ: এটি ব্যবহার করে দেখুন

#Add your data
x <- structure(list(A = c(5,    3.5, 3.25, 4.25,  1.5 ), 
                    B = c(4.25, 4,   4,    4.5,   4.5 ),
                    C = c(4.5,  2.5, 4,    2.25,  3   )
               ),
               .Names    = c("A", "B", "C"),
               class     = "data.frame",
               row.names = c(NA, -5L)
     )

#The vector your result should match
y<-c(A=5, B=4.25, C=4.5)

#Test that the items in the row match the vector you wanted
x[1,]==y

এই পৃষ্ঠায় ( এই দরকারী সাইট থেকে ) এর সূচকের মতো ভাল তথ্য রয়েছে।


14

লজিকাল ইনডেক্সিং খুব আর-ইশ। চেষ্টা করুন:

 x[ x$A ==5 & x$B==4.25 & x$C==4.5 , ] 

বা:

subset( x, A ==5 & B==4.25 & C==4.5 )

7

চেষ্টা করুন:

> d <- data.frame(a=1:3, b=4:6, c=7:9)

> d
  a b c
1 1 4 7
2 2 5 8
3 3 6 9

> d[1, ]
  a b c
1 1 4 7

> d[1, ]['a']
  a
1 1

5

আপনি যদি সারি নম্বরটি না জানেন তবে কিছু মান জানেন তবে আপনি সাবসেট ব্যবহার করতে পারেন

x <- structure(list(A = c(5,    3.5, 3.25, 4.25,  1.5 ), 
                    B = c(4.25, 4,   4,    4.5,   4.5 ),
                    C = c(4.5,  2.5, 4,    2.25,  3   )
               ),
               .Names    = c("A", "B", "C"),
               class     = "data.frame",
               row.names = c(NA, -5L)
     )

subset(x, A ==5 & B==4.25 & C==4.5)

আপনি কি এর পরিবর্তে এটি বোঝাতে চান? সাবসেট (এক্স, এ == 5 && বি == 4.25 এবং সি == 4.5)
মোমারা

না, এটি হওয়া উচিত ছিল:subset(x, A ==5 & B==4.25 & C==4.5)
আইআরটিএফএম

1

10 বছর পরে ---> পরিপাটি ব্যবহার করে আমরা এটিকে সহজভাবে অর্জন করতে এবং ক্রিস্টোফার বটমস থেকে একটি পাতা ধার করতে পারি । আরও ভাল উপলব্ধি জন্য, দেখুন slice()

library(tidyverse)
x <- structure(list(A = c(5,    3.5, 3.25, 4.25,  1.5 ), 
                    B = c(4.25, 4,   4,    4.5,   4.5 ),
                    C = c(4.5,  2.5, 4,    2.25,  3   )
),
.Names    = c("A", "B", "C"),
class     = "data.frame",
row.names = c(NA, -5L)
)

x
#>      A    B    C
#> 1 5.00 4.25 4.50
#> 2 3.50 4.00 2.50
#> 3 3.25 4.00 4.00
#> 4 4.25 4.50 2.25
#> 5 1.50 4.50 3.00

y<-c(A=5, B=4.25, C=4.5)
y
#>    A    B    C 
#> 5.00 4.25 4.50

#The slice() verb allows one to subset data row-wise. 
x <- x %>% slice(1) #(n) for the nth row, or (i:n) for range i to n, (i:n()) for i to last row...

x
#>   A    B   C
#> 1 5 4.25 4.5

#Test that the items in the row match the vector you wanted
x[1,]==y
#>      A    B    C
#> 1 TRUE TRUE TRUE

2020-08-06 এ ডিপেক্স প্যাকেজ (v0.3.0) দ্বারা নির্মিত

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