在练习中,我必须创建一个这样的数据框:
Name <- c("Sam","Frank","Amy")
Age <- c(22,25,26)
Weight <- c(150,165,120)
Sex <- c("M", "M", "F")
df <- data.frame (row.names = Name, Age, Weight, Sex)
所以基本上我创建了列,然后根据这些列创建了一个数据框。
如果我有以下向量并且我想创建相同的数据帧怎么办?有办法吗?
Sam <- c(22,150, 'M')
Frank <- c(25, 165, 'M')
Amy <- c(26, 120, 'F')
由于
答案 0 :(得分:3)
试试这个:
df <- as.data.frame(rbind(Sam, Frank, Amy), stringsAsFactors = FALSE)
names(df) <- c('Age' , 'weight', 'Sex')
df
Age Weight Sex
Sam 22 150 M
Frank 25 165 M
Amy 26 120 F
如果您担心变量的类型,您可以另外进行转换:
df$Age <- as.integer(df$Age)
df$weight <- as.integer(df$weight)
df$Sex <- as.factor(df$Sex)
或者我们可以使用type.convert
:
df <- data.frame(lapply(df, type.convert))
答案 1 :(得分:0)
以下是使用transpose
和mget
nm1 <- c("Sam", "Frank", "Amy")
`row.names<-`(data.frame(setNames(lapply(data.table::transpose(mget(nm1)),
type.convert), c("Age", "Weight", "Sex"))), nm1)
Age Weight Sex
# Sam 22 150 M
# Frank 25 165 M
# Amy 26 120 F