Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止[.data.frame放置尺寸标注,其中只有一列_R_Dataframe - Fatal编程技术网

防止[.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
始终是一个R
data.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
?@rbm
as.data.frame
感觉像是特别的解决方案。当
n>1
时,
as.data.frame(demos[-i,])
有点多余。当
n==1
as.data.frame(demos i,)
更改原始
demos
中的列名。然后我必须做
colnames可能使用
as.data.frame
?@rbm
as.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