-5

地狱所有,

如何从数据框或 csv 输出中排除零列或行名列?

df <- df[,c(1,2,3,4,5]
drops <- c(0)
df <- df[,!(names(df) %in% drops)]
write.csv(df,'Forecast Values.csv')

我尝试了上述方法,但 rownames 列仍然保留到“df”和 csv 文件中,我特别希望将其排除在 csv 中。另外值得注意的是,变量“drops”读取为零值,而不是列零。

4

2 回答 2

2

您可以通过简单地将它们设置为 null来删除rownamesa 。dataframe它们默认为 null(请参阅 参考资料?data.frame),但有时它们由各种函数设置:

# Create a sample dataframe with row.names
a_data_frame <- data.frame(letters = c("a", "b", "c"), 
                           numbers = c(1, 2, 3), 
                           row.names = c("Row1", "Row2", "Row3"));
# View it
a_data_frame;
>        letters numbers
>Row1       a       1
>Row2       b       2
>Row3       c       3

# Use rownames() to set them to new value, which is null in this case
rownames(a_data_frame) <- NULL;

# View it again
a_data_frame;
>     letters numbers
>1       a       1
>2       b       2
>3       c       3

请注意,NULL rownames打印时显示为增量计数,但不再存在于a_data_frame data frame对象中,因此当由另一个函数(如 )处理时,您看到的write.csv任何rownames内容都是由函数创建的,而不是从data frame对象本身获取的。

如上一张海报所述(请参阅 参考资料?write.csv),您可以row.names=FALSEwrite.csv命令中指定。

于 2016-01-02T21:57:19.253 回答
0

您可以像这样将行设置为NULLrow.names(df) <- NULL

如果您愿意,还可以重命名行: row.names(df) <- c("row_1","row_2", etc...)

于 2019-12-19T14:41:39.270 回答