89

Tôi cần hoán chuyển một khung dữ liệu lớn và vì vậy tôi đã sử dụng:

df.aree <- t(df.aree)
df.aree <- as.data.frame(df.aree)

Đây là những gì tôi có được:

df.aree[c(1:5),c(1:5)]
                         10428        10760        12148        11865
    name                M231T3       M961T5       M960T6      M231T19
    GS04.A        5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
    GS16.A        5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
    GS20.A        5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
    GS40.A        3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04    

Vấn đề của tôi là các tên cột mới (10428, 10760, 12148, 11865) mà tôi cần loại bỏ vì tôi cần sử dụng hàng đầu tiên làm tên cột.

Tôi đã thử với col.names()chức năng nhưng tôi không có được những gì tôi cần.

Bạn có gợi ý nào không?

CHỈNH SỬA

Cảm ơn lời đề nghị của bạn !!! Sử dụng nó tôi có được:

df.aree[c(1:5),c(1:5)]
                        M231T3       M961T5       M960T6      M231T19
    GS04.A        5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
    GS16.A        5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
    GS20.A        5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
    GS40.A        3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
    GS44.A        1.225938e+04 2.681887e+03 1.154924e+04 4.202394e+04

Bây giờ tôi cần chuyển đổi tên hàng (GS ..) trong cột yếu tố ....

|
91

Tốt hơn hết là bạn không chuyển đổi data.frame trong khi cột tên nằm trong đó - tất cả các giá trị số sẽ được chuyển thành chuỗi!

Đây là một giải pháp giữ số là số:

# first remember the names
n <- df.aree$name

# transpose all but the first column (name)
df.aree <- as.data.frame(t(df.aree[,-1]))
colnames(df.aree) <- n
df.aree$myfactor <- factor(row.names(df.aree))

str(df.aree) # Check the column types
|
45
df.aree <- as.data.frame(t(df.aree))
colnames(df.aree) <- df.aree[1, ]
df.aree <- df.aree[-1, ]
df.aree$myfactor <- factor(row.names(df.aree))
|
33

Bạn có thể sử dụng transposechức năng từ data.tablethư viện. Giải pháp đơn giản và nhanh chóng mà giữ numericcác giá trị như numeric.

library(data.table)

# get data
  data("mtcars")

# transpose
  t_mtcars <- transpose(mtcars)

# get row and colnames in order
  colnames(t_mtcars) <- rownames(mtcars)
  rownames(t_mtcars) <- colnames(mtcars)
|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.