防止[.data.frame放置尺寸标注,其中只有一列
我有一个数据框防止[.data.frame放置尺寸标注,其中只有一列,r,dataframe,R,Dataframe,我有一个数据框demos,有n列(取决于外部输入),其中n=1,2,3… 我想删除某些行,然后在此数据框中添加新列。当n>1时,以下代码工作正常,其中demos.part始终是一个Rdata.frame demos.part <- demos[-i, ] // remove i-th row demos.part[,"new column name"] <- as.vector(<new data>) demos.part响应您关于colnames的命令-我认为它们不
demos
,有n列(取决于外部输入),其中n=1,2,3…
我想删除某些行,然后在此数据框中添加新列。当n>1
时,以下代码工作正常,其中demos.part
始终是一个Rdata.frame
demos.part <- demos[-i, ] // remove i-th row
demos.part[,"new column name"] <- as.vector(<new data>)
demos.part响应您关于colnames
的命令-我认为它们不会消失。
考虑下面的代码:
remove.row <- function(df,n) { as.data.frame(df[-n,]) }
#
a <- data.frame(col1=c(1,2),col2=c("A","B"))
a
class(a)
colnames(a)
#
a <- remove.row(a,1)
a
class(a)
colnames(a)
#
a <- remove.row(a,1)
a
class(a)
colnames(a)
remove.row#
>a
col1 col2
2 B
>(甲)级
[1] “数据帧”
>colnames(a)
[1] “col1”“col2”
> #
>a
[1] col1 col2
(或长度为0的行名称)
>(甲)级
[1] “数据帧”
>colnames(a)
[1] “col1”“col2”
响应您关于colnames
的命令-我认为它们不会消失。
考虑下面的代码:
remove.row <- function(df,n) { as.data.frame(df[-n,]) }
#
a <- data.frame(col1=c(1,2),col2=c("A","B"))
a
class(a)
colnames(a)
#
a <- remove.row(a,1)
a
class(a)
colnames(a)
#
a <- remove.row(a,1)
a
class(a)
colnames(a)
remove.row#
>a
col1 col2
2 B
>(甲)级
[1] “数据帧”
>colnames(a)
[1] “col1”“col2”
> #
>a
[1] col1 col2
(或长度为0的行名称)
>(甲)级
[1] “数据帧”
>colnames(a)
[1] “col1”“col2”
您的第一行,demos.part您的第一行,demos.part可能使用as.data.frame
?@rbmas.data.frame
感觉像是特别的解决方案。当n>1
时,as.data.frame(demos[-i,])
有点多余。当n==1
as.data.frame(demos i,)
更改原始demos
中的列名。然后我必须做colnames可能使用as.data.frame
?@rbmas.data.frame
感觉像是临时解决方案。当n>1
时,as.data.frame(demos[-I,])
有点多余。当n==1
,as.data.frame(demos[-I,])
更改原始demos
中的列名。然后我必须执行colnames。请在数据中只有一列时尝试这种情况。frame
哦,好的,我明白你的意思,但在这种情况下,我只需在helper函数中将其作为一个角大小写来处理。请在数据中只有一列时尝试这种情况.frame
哦,好的,我明白你的意思,但在本例中,我只是将其作为helper函数中的一个角案例来处理。
# One column: result is a vector
> data.frame(a=letters)[1,]
[1] a
Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
# 2 cols: result is a df with 1 row
> data.frame(a=letters, b=letters)[1,]
data.frame with 1 row and 2 columns
a b
<factor> <factor>
1 a a
> args(`[.data.frame`)
function (x, i, j, drop = if (missing(i)) TRUE else length(cols) ==
1)
NULL
> data.frame(a=letters)[1, , drop=FALSE]
data.frame with 1 row and 1 column
a
<factor>
1 a
> library(dplyr)
> data_frame(a=letters)[1,]
Source: local data frame [1 x 1]
a
(chr)
1 a